Hỏi hàm trả về tên vùng dữ liệu? (1 người xem)

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

hoangalone

Thành viên mới
Tham gia
5/2/12
Bài viết
10
Được thích
0
Cho em hỏi chút
Giả sử mình đặt tên cho vùng dữ liệu A1:B5 là "dulieu"
Vậy có hàm nào để xuất trả về tên vùng dữ liệu đó tại ô C1 không ạ?
 
Cảm ơn bạn nhưng ý của mình là hàm xuất ra tên "dulieu" luôn ak chứ không phải địa chỉ.
 
Hehe.Tại cần hàm chạy ra hết chứ nhập thủ công lâu lắm mới xong.
 
Hehe.Tại cần hàm chạy ra hết chứ nhập thủ công lâu lắm mới xong.

Bạn hỏi lòng vòng ghê nhẩy. Theo mình hiểu bạn muốn đặt một name bằng Ctrl+F3 rồi
Mã:
=VLOOKUP(B5,hoang,2,0)
ý của bạn có giống như thế này ko
 
Lần chỉnh sửa cuối:
Hehe.Tại cần hàm chạy ra hết chứ nhập thủ công lâu lắm mới xong.
Chẳng hiểu ý bạn luôn, nếu chỉ cần tên Name thì nghe cũng kỳ lạ, nếu bạn muốn dùng hàm chắc chỉ có thể dùng macro4 thôi. Nói chung nếu có thể bạn gửi file đính kèm lên, nêu mục đích cuối cùng của bạn, có thể việc tìm tên Name chưa hẵn đã giải quyết vấn đề của bạn một cách hiệu quả nhất.
 
Đúng là tìm Name không phải mục đích cuối cùng. Mình post file lên mọi người xem giúp và cho ý kiến. Không biết có cách nào tốt nhất để thực hiện không?
 

File đính kèm

Đúng là tìm Name không phải mục đích cuối cùng. Mình post file lên mọi người xem giúp và cho ý kiến. Không biết có cách nào tốt nhất để thực hiện không?
Bạn muốn xuất tên "vùng" dựa vào dữ liệu nào, phải chăng bạn muốn có công thức để trả về kết quả tại ô K3, dựa vào dữ liệu tại K4?
Vậy bạn thử nghĩ xem nếu K4 là "Nội thành" thì biêt dò tìm vùng nào bây giờ?
 
Kết quả tại K4 phụ thuộc vào K3. Chọn tên thành phố tại K3 thì sẽ xuất hiện tên quận tại K4 tương ứng với thành phố đó.
 

File đính kèm

Lần chỉnh sửa cuối:
Cảm ơn bạn. Chắc là phải tạo thêm 1 cột làm theo cách của bạn rồi ẩn nó đi vậy.--=0
 
Đúng là tìm Name không phải mục đích cuối cùng. Mình post file lên mọi người xem giúp và cho ý kiến. Không biết có cách nào tốt nhất để thực hiện không?
Mình làm theo yêu cầu của bạn
Mã:
Function timname(ten As String) As StringDim n As Name, i As Long, j As Long, arr()
arr = Range("a3:b" & Range("b65536").End(3).Row)
For i = 1 To UBound(arr)
If arr(i, 2) = ten Then Exit For
Next
j = Range("A" & (i + 2)).End(xlDown).Row - 1
If j = 65535 Then j = Range("b65536").End(3).Row
For Each n In Names
If n.RefersTo = "=Data!" & Range("B" & (i + 3), "B" & j).Address Then
timname = n.Name
Exit For
End If
Next
End Function
Tại ô I3 bạn nhập =timname(H3) rồi kéo xuống sẽ được HN, HCM, HP
 
Mình làm theo yêu cầu của bạn
Mã:
Function timname(ten As String) As StringDim n As Name, i As Long, j As Long, arr()
arr = Range("a3:b" & Range("b65536").End(3).Row)
For i = 1 To UBound(arr)
If arr(i, 2) = ten Then Exit For
Next
j = Range("A" & (i + 2)).End(xlDown).Row - 1
If j = 65535 Then j = Range("b65536").End(3).Row
For Each n In Names
If n.RefersTo = "=Data!" & Range("B" & (i + 3), "B" & j).Address Then
timname = n.Name
Exit For
End If
Next
End Function
Tại ô I3 bạn nhập =timname(H3) rồi kéo xuống sẽ được HN, HCM, HP
Dim n As Name, i As Long, j As Long, arr()
đoạn này hình như phải xuống dòng anh Hậu nhỉ, để nguyên code em thấy báo lỗi
Mã:
Function timname(ten As String) As String
Dim n As Name, i As Long, j As Long, arr()
arr = Range("a3:b" & Range("b65536").End(3).Row)
For i = 1 To UBound(arr)
If arr(i, 2) = ten Then Exit For
Next
j = Range("A" & (i + 2)).End(xlDown).Row - 1
If j = 65535 Then j = Range("b65536").End(3).Row
For Each n In Names
If n.RefersTo = "=Data!" & Range("B" & (i + 3), "B" & j).Address Then
timname = n.Name
Exit For
End If
Next
End Function
 
Lần chỉnh sửa cuối:
Đúng là phải xuống dòng, do lỗi khi copy paste.
Code chạy được nhưng có vẻ không hay ở chỗ phải for next từng name, không biết có từ địa chỉ có tìm luôn được name không?
 
Đúng là phải xuống dòng, do lỗi khi copy paste.
Code chạy được nhưng có vẻ không hay ở chỗ phải for next từng name, không biết có từ địa chỉ có tìm luôn được name không?

Được chứ anh
Mã:
MsgBox Selection.Name.Name
 

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

Back
Top Bottom