Xin các cao nhân chỉ giáo ạ !!!!

Liên hệ QC

0978045671

Thành viên mới
Tham gia
6/2/10
Bài viết
0
Được thích
0
Mình có 1 hàm này mà chưa hiểu giá trị "AD1" được hiểu theo nghĩa như thế nào ?
Sub TachTCNTVL()
Dim my_arr, sArr, dArr(1 To 100, 1 To 1), d As Object, v As Variant, Ma As String, Ws As Worksheet
Dim J As Long, I As Long, K As Long
Set Ws = ActiveSheet
On Error Resume Next
Set d = CreateObject("Scripting.Dictionary")
Ma = Ws.Range("AD1")
With Sheets("TCNT")
sArr = .Range("A3", .Range("A65000").End(3)).Resize(, 2).Value
End With
my_arr = Split(Ma, ";")
For I = LBound(my_arr) To UBound(my_arr)
d(Application.WorksheetFunction.Substitute(my_arr(I), " ", "")) = 1
Next I
For Each v In d.keys()
For I = 1 To UBound(sArr)
If Application.WorksheetFunction.Substitute(sArr(I, 1), " ", "") = v Then
K = K + 1
dArr(K, 1) = " - " & sArr(I, 1) & ": " & sArr(I, 2)
Exit For
End If
Next I
Next v
With Ws
.Range("E88:M97").ClearContents
.Range("E88:M97").EntireRow.Hidden = False
If K Then
.Range("E88").Resize(K, 1) = dArr
End If
.Range("E88:M97").SpecialCells(xlCellTypeBlanks).EntireRow.Hidden = True
End With
End Sub

Mong được giải đáp ạ.
Cảm ơn mọi người rất nhiều !!!!
 

File đính kèm

  • Screenshot_1.png
    Screenshot_1.png
    220.2 KB · Đọc: 4
Ngứa tay quá, ngứa tay quá, nhưng mà thôi, xức thuốc ngứa (*)

Ma = Ws.Range("AD1")
"AD1" là một chuỗi (hằng)
VBA kết nối với bảng tính có rất nhiều hàm mặc định:
Thuộc tính Range là một đối tượng. Nếu tham số là một chuỗi thì nó hiểu đấy là địa chỉ của vùng, và trả về đối tượng là vùng ấy. Như vậy, ở đây nó sẽ về vùng "AD1", tức ô cột AD, dòng 1 của bảng tính Ws.

Mặc định về phép gán:
Nếu bên trái của phép gán (dấu bằng =) có từ Set thì nó gán cả đối tượng cho biến cần gán.
Nếu không có từ khoá Set thì nó mặc định là gán trị (Value) của cái range ấy cho biến. Phép gán trị lại có hai mặc định:
(i) Nếu cái range ấy chỉ vỏn vẹn gồm một ô thì nó gán giá trị ấy làm trị đơn cho biến.
(ii) Nếu cái range ấy gồm 2 ô trở lên thì nó gán cả mảng cho biến, và kết quả là một mảng 2 chiều.
Nếu vì lý do gì gán không được thì nó sẽ... lỗi: cơ-rát (ví dụ Dim biến là kiểu đơn giản String, Long,.. mà lại đi gán một mảng cho nó)

@thớt: đừng đọc phần chú thích bên dưới. Tôi chỉ phân trần với các bạn của tôi thôi. Nếu tò mò đọc thì đừng đỗ lỗi cho tôi.

(*) ngứa tay cái vụ kia kìa. Chứ không phải do đói. Mình chỉ thử vừa làm vừa che mặt xấu hổ (với chính mình) dần có quen hay không. Theo Nam Cao, che riết rồi sẽ quen.
 
Web KT
Back
Top Bottom