thanhtungttvl
Thành viên mới
- Tham gia
- 22/12/13
- Bài viết
- 10
- Được thích
- 0
Công thức tại ô A3:hiện em đang làm 1 cái Form nhập vào danh sách đọc giả
em đang viết được code nhập rồi nhưng còn cái cột số thứ tự không biết làm, bác nào biết chĩ em với
Điều kiện: khi nhập vào 1 đọc giả bất kỳ thì nó tự động đánh số thứ tự từ trên xuống
thank
=IF(B3<>"";MAX($A$2:$A2)+1;"")
Công thức tại ô A3:
sau đó kéo Fill xuống dưới.Mã:=IF(B3<>"";MAX($A$2:$A2)+1;"")
Nếu báo lỗi thì thay dấu ";" thành dấu ","
Nếu muốn dùng VBA thì đưa đoạn code bạn đã viết tôi bổ sung cho.
hiện em đang làm 1 cái Form nhập vào danh sách đọc giả
em đang viết được code nhập rồi nhưng còn cái cột số thứ tự không biết làm, bác nào biết chĩ em với
Điều kiện: khi nhập vào 1 đọc giả bất kỳ thì nó tự động đánh số thứ tự từ trên xuống
thank
i = Sheet1.Cells(65536, 2).End(xlUp).Row + 1
Sheet1.Cells(i, 1) = i - 2 '' so thu tu
Private Sub nhap_Click()
Dim madocgia, tendocgia, namsinh, nghenghiep, gioitinh, sodienthoai, diachi, ghichu As String
madocgia = textmadocgia.Text
tendocgia = texttendocgia.Text
namsinh = textnamsinh.Text
nghenghiep = textnghenghiep.Text
gioitinh = textgioitinh.Text
sodienthoai = textsodienthoai.Text
diachi = textdiachi.Text
ghichu = textghichu.Text
Dim i As Integer
i = Sheet1.Cells(65536, 2).End(xlUp).Row + 1
Sheet1.Cells(i, 1) = i - 2 '' so thu tu
Sheet1.Cells(i, 2) = madocgia
Sheet1.Cells(i, 3) = tendocgia
Sheet1.Cells(i, 4) = namsinh
Sheet1.Cells(i, 5) = nghenghiep
Sheet1.Cells(i, 6) = gioitinh
Sheet1.Cells(i, 7) = sodienthoai
Sheet1.Cells(i, 8) = diachi
Sheet1.Cells(i, 9) = ghichu
''------- so thu tu ----------------------------------------------------
End Sub
Phần khác lệnh của bạn giữ nguyên, chỉ thêm 2 dòng, và xóa đoạn lặp tìm dòng cuối của bạn đi
PHP:i = Sheet1.Cells(65536, 2).End(xlUp).Row + 1 Sheet1.Cells(i, 1) = i - 2 '' so thu tu
chỉ sửa chút là tìm dòng cần nhập cộng thêm, và thêm vào cột A thứ tự , sửa sub cho nút nhập, đầy đủ như sau:
(chắc bạn hiểu các con số tại sao là 2 ở: i - 2)
PHP:Private Sub nhap_Click() Dim madocgia, tendocgia, namsinh, nghenghiep, gioitinh, sodienthoai, diachi, ghichu As String madocgia = textmadocgia.Text tendocgia = texttendocgia.Text namsinh = textnamsinh.Text nghenghiep = textnghenghiep.Text gioitinh = textgioitinh.Text sodienthoai = textsodienthoai.Text diachi = textdiachi.Text ghichu = textghichu.Text Dim i As Integer i = Sheet1.Cells(65536, 2).End(xlUp).Row + 1 Sheet1.Cells(i, 1) = i - 2 '' so thu tu Sheet1.Cells(i, 2) = madocgia Sheet1.Cells(i, 3) = tendocgia Sheet1.Cells(i, 4) = namsinh Sheet1.Cells(i, 5) = nghenghiep Sheet1.Cells(i, 6) = gioitinh Sheet1.Cells(i, 7) = sodienthoai Sheet1.Cells(i, 8) = diachi Sheet1.Cells(i, 9) = ghichu ''------- so thu tu ---------------------------------------------------- End Sub
tươngcám ơn bác đúng cái mình cần
mà mình ko hiểu lắm về cái code mà bác viết, bác có thể nói sơ qua tí dc ko
- cái số 65536 để làm gì vậy
- cái code phía sau nữa .End(xlUp).Row + 1
- cái số thứ tự thì chĩ cần 1 dòng code nầy Sheet1.Cells(i, 1) = i - 2 là ra rồi à
Thank bác.
tương
Sheet1.Cells(65536, 2) tương đương ô [B65536] ở sheet1
tại sao chọn 65536 vì đó là dòng cuối cùng của phiên bản excel 2003 (có thể còn dùng) / ex2007 trở lên thì cao hơn nhiểu ( >1 triệu...), nhưng thế là quá đủ để vùng dữ liệu của ta không ghé đến
.End(xlUp).Row + 1
tương đương sao?
giờ để hiểu cái này, bạn hãy
+ di chuyển con trỏ đên ô B65536
+ bấm phím END, rồi nhả tay ra bấm phím UP (mũi tên hướng lên trên)
xem con trỏ chạy về ô nào?? có phải ô cuối cùng có dữ liệu của B không nên
.End(xlup) là tương đương 2 dấu bước dấu "+" trên
rồi .Row là lấy chỉ số hàng của ô cuối này , sau đó đem +1 ==> tương đương chỉ số hàng ngay dưới ô B có dữ liệu cuối,
vậy thôi
Tìm hiểu thêm ở đây cho bài bản hơn http://www.giaiphapexcel.com/forum/showthread.php?6420-Hỏi-về-thuộc-tính-End()&p=44289#post44289 (lần sau bạn cũng nên tự tìm search giống tôi thế này)
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 1
DIỄN ĐÀN GIẢI PHÁP EXCEL Group 2