Các bạn giúp mình sửa đoạn code này với?

Liên hệ QC

anhthuan

Thành viên hoạt động
Tham gia
10/12/06
Bài viết
106
Được thích
264
Chào các bạn,

Mình có đoạn mã này (đặt tên vùng sử đụng VBA), nhưng không hiểu bị sai ở đoạn nào. Đoạn code như sau:
Dim irow As Integer
irow = Sheets("nkc").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).row
ActiveWorkbook.Names.Add Name:="ma", RefersToR1C1:="=nkc!R11C5:R" & irow & ":C5"

Mình muốn kết quả vùng NKC!$E$11:$E$irow đặt tên là No
Tuy nhiên khi chạy đoạn mã này nó lại ra kết quả như sau: =NKC!$E$11:THDT!$18:$18:THDT!$E:$E (trong đó sheet THDT là sheet đang acitve), mình không hiểu mình sai ở chỗ nào. Các bạn chỉ ra hộ mình với. Cảm ơn trước nhé
 
Chào bạn,

Bạn sửa lại thành:

Sheets("nkc").Names.Add Name:="ma", RefersToR1C1:="=nkc!R11C5:R" & irow & "C5"
 
Cảm ơn bạn nhiều
Tuy nhiên mình đã sửa theo của bạn, nhưng kết quả vẫn y như vậy.

Dù sao vẫn cảm ơn bạn nhiều
 
anhthuan đã viết:
Chào các bạn,

Mình có đoạn mã này (đặt tên vùng sử đụng VBA), nhưng không hiểu bị sai ở đoạn nào. Đoạn code như sau:
Dim irow As Integer
irow = Sheets("nkc").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).row
ActiveWorkbook.Names.Add Name:="ma", RefersToR1C1:="=nkc!R11C5:R" & irow & ":C5"
Bạn muốn đặt tên name cho sheets("nck") là ma thì sheets("nck") phải là sheet đang hoạt động. Bạn chỉnh lại thế này gọn hơn:
Mã:
[FONT=Verdana]Sub MyName()[/FONT]
[FONT=Verdana]Dim irow As Integer[/FONT]
[FONT=Verdana]Sheets("nkc").Select[/FONT]
[FONT=Verdana]irow = Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row[/FONT]
[FONT=Verdana]Names.Add Name:="ma", RefersToR1C1:=Range(Cells(11, 5), Cells(irow, 5))[/FONT]
[FONT=Verdana]End Sub[/FONT]
 
Đặt câu này có vẻ ngắn hơn
Range(Cells(11, 5), Cells(irow, 5)).Name = "Ma"
Sao lại thêm offset(1,0), mình chưa hiểu sao + 1 dòng.
 
Sao lại thêm offset(1,0), mình chưa hiểu sao + 1 dòng.

Chắc là để cộng thêm 1 (xác định hàng tiếp theo)

Sao không cộng thêm 1 luôn nhỉ.
VD như :

Dim irow As Integer
irow = Sheets("nkc").Range("A65000").End(xlUp).row + 1
Sheets("nkc"). Range("E11:E" & irow).Name = "Ma"

Thân!
 
Mr Okebab đã viết:
Sao không cộng thêm 1 luôn nhỉ.!
Cả hai cách cũng cho kết quả giống nhau. Không vấn đề gì cả. --=0

Mr Okebab đã viết:
Sheets("nkc"). Range("E11:E" & irow).Name = "Ma"
Bạn ơi, mình sử dụng cách này rồi, nói chung nó trả về name chuẩn theo ý mình, nhưng name đó chỉ dùng được ở duy nhất sheet("nkc") thoi. Còn chạy sang các sheet khác thi không được. Vấn đề của mình là đặt name đẻ thực hiện cho các công thức ở các sheet khác nhau
 
Web KT

Bài viết mới nhất

Back
Top Bottom