Hỏi cách tạo Name động bằng VBA (1 người xem)

Người dùng đang xem chủ đề này

hanhpptc

Thành viên tiêu biểu
Tham gia
16/5/08
Bài viết
459
Được thích
320
Mình muốn tạo Name động bằng VBA, khi cấn thì khởi tạo, không cần thì xóa name (Yêu cầu theo File đính kèm).
Mong các bạn hướng dẫn giúp mình với
 

File đính kèm

Mình muốn tạo Name động bằng VBA, khi cấn thì khởi tạo, không cần thì xóa name (Yêu cầu theo File đính kèm).
Mong các bạn hướng dẫn giúp mình với
Vầy đi:
PHP:
Sub TaoName()
  On Error Resume Next
  With ThisWorkbook
    .Names("Khach").Delete
    .Names.Add "Khach", "=OFFSET(Sheet1!$A$2,,,COUNTA(Sheet1!$A$2:$A$1000),1)"
  End With
End Sub
Bê nguyên công thức của bạn vào thôi
 
Upvote 0
Mình muốn tạo Name động bằng VBA, khi cấn thì khởi tạo, không cần thì xóa name (Yêu cầu theo File đính kèm).
Mong các bạn hướng dẫn giúp mình với
Mình thì làm cách khác.
PHP:
Dim RngName As String, RngRef As String
Dim i As Long
Sub TaoName()
RngName = [F2].Value: RngRef = [G2].Value
ActiveWorkbook.Names.Add Name:=RngName, RefersTo:=RngRef
End Sub
Sub XoaName()
RngName = [F2].Value
For i = 1 To ActiveWorkbook.Names.Count
  If ActiveWorkbook.Names(i, 1, 1).NameLocal = RngName Then
    ActiveWorkbook.Names(i, 1, 1).Delete
  End If
Next i
End Sub
Nhưng theo tôi đã dùng VBA mà còn thêm add name làm gì, mà có add thì cũng đâu cần dùng
=OFFSET(Sheet1!$A$2,0,0,COUNTA(Sheet1!$A$2:$A$100),1)
Dùng thế thì không thay thay vì ta đếm cột A => LastRow => Name.
 
Upvote 0
Theo tôi nên làm như vầy cho 2 cột A và B, có như vậy thì chẳng vướng gì đến công thức, code chạy lại nhanh nữa:

PHP:
Sub TaoName()
    Dim rng As Range
    Set rng = Range(Sheet1.[A2], Sheet1.[A65536].End(xlUp))
    If rng.Address = "$A$1:$A$2" Then
        Sheet1.[A2].Name = "MaKH"
        Sheet1.[B2].Name = "TenKH"
    Else
        rng.Name = "MaKH"
        rng.Offset(, 1).Name = "TenKH"
    End If
End Sub
 
Upvote 0
Upvote 0

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

Back
Top Bottom