Nhờ các anh chị chỉ giúp cách lấy giá trị của NameRange trong VBA

Liên hệ QC

Mr.hieudoanxd

Thành viên thường trực
Tham gia
25/10/19
Bài viết
322
Được thích
150
Chào các anh chị, Em có 1 câu hỏi nhỏ như thế này

Trong NameManager em tạo 2 name sau đây (thực chất là tính giá trị của 2 hàm Index và Match
Name1 tên: KhoiLuong có Refers To là =INDEX(Data!$I$6:$I$463,X)
Name2 tên: X có Refers To là =MATCH('Bien ban'!$AD$1,Data!$C$6:$C$463,0)
Trong excel gọi giá trị Khoiluong hoặc X vào trong bảng tính không có vấn đề gì. Qua VBA em gặp rắc rối khi muốn lấy 2 giá trị này dựa theo NameRange
Em thử từ khóa ThisWorkbook.Names("Khoiluong") nhưng không được
Vậy, làm cách nào để lấy giá trị của NameRange như trong trường hợp trên ạ?
Em cảm ơn!
 
Bạn tham khảo cái ni:
PHP:
Function NC(Optional Cot As String = "D") As String
 Dim Cls As Range, Rng As Range
 
 If Cot = "D" Then
    Set Rng = Sheet3.Range("Cot")
 Else
    Set Rng = Sheet3.Range("GPE")
 End If
 For Each Cls In Rng
    NC = Cls.Value & "@" & NC
 Next Cls
End Function
 
Upvote 0
INDEX(Data!$I$6:$I$463,X) không có tham số cột. Bản thân nó là name lỗi.
Trường hợp khác: INDEX(Data!$I$6:$I$463,X,) tức là lấy hết dòng.
Lúc đó giá trị của Name trong VBA là 1 mảng, không lấy được. Chỉ lấy giá trị đơn theo kiểu =Evaluate(ThisWorkbook.Names("Khoiluong").Value)(1, 1)
 
Lần chỉnh sửa cuối:
Upvote 0
INDEX(Data!$I$6:$I$463,X) không có tham số cột. Bản thân nó là name lỗi.
Trường hợp khác: INDEX(Data!$I$6:$I$463,X,) tức là lấy hết dòng.
Lúc đó giá trị của Name trong VBA là 1 mảng, không lấy được. Chỉ lấy giá trị đơn theo kiểu =Evaluate(ThisWorkbook.Names("Khoiluong").Value)(1, 1)
Tham số cột của em là giá trị số xác định theo name x rồi ạ. Nên name khoiluong theo em thấy không lỗi ạ. Em có thể lấy giá trị của nó trong excel được ạ.
Hàm evaluate giải quyết được vấn đề của em rồi. Cảm ơn anh!
 
Upvote 0
Upvote 0
Tham số cột của em là giá trị số xác định theo name x rồi ạ. Nên name khoiluong theo em thấy không lỗi ạ. Em có thể lấy giá trị của nó trong excel được ạ.
Hàm evaluate giải quyết được vấn đề của em rồi. Cảm ơn anh!
name x lấy được từ hàm match chứ gì? vị trí của nó trong index là tham số dòng, tham số cột chưa có
 
Upvote 0
name x lấy được từ hàm match chứ gì? vị trí của nó trong index là tham số dòng, tham số cột chưa có
Theo tôi ...

Nếu chỉ có dòng thì 2 cách đều được chấp nhận
=INDEX(Data!$I$6:$I$463,X)

=INDEX(Data!$I$6:$I$463,X,)

Và tất nhiên không có CỘT thì INDEX trả về MẢNG nếu mảng gốc có > 1 cột, và trả về 1 giá trị khi mảng gốc có 1 cột (mỗi dòng chỉ có 1 cột - 1 giá trị).

Ở đây mảng gốc chỉ có 1 cột nên INDEX trả về 1 giá trị. Vì thế không cần (1,1). Và không cần dấu phẩy sau X.

Lấy cả dòng INDEX(vung, a) và INDEX(vung, a, ) đều được chấp nhận.

Lấy cả cột INDEX(vung, , a)
 
Upvote 0
Nếu chỉ có dòng thì 2 cách đều được chấp nhận
Đúng là chấp nhận 2 cách trong trường hợp tham số "vung" chỉ có 1 cột. Thật vô duyên là tôi test trước khi trả lời với "vung" 2 cột. "vung" 2 cột trở lên là lỗi

Dù sao câu "match chứ gì" của tôi dùng để phản đối câu "Tham số cột của em là giá trị số xác định theo name x rồi", vì rõ ràng x đang ở vị trí tham số dòng.
 
Lần chỉnh sửa cuối:
Upvote 0
Cái này là em không đọc kỹ hàm Index rồi. Trước giờ em luôn sử dụng Index trong trường hợp kết hợp với match nên mặc định 1 tham số đằng sau.
Cần phải học thêm các các hàm trong excel thôi. Nhưng mà Name của em không lỗi anh nhỉ :D
Đúng là chấp nhận 2 cách trong trường hợp tham số "vung" chỉ có 1 cột. Thật vô duyên là tôi test trước khi trả lời với "vung" 2 cột. "vung" 2 cột trở lên là lỗi

Dù sao câu "match chứ gì" của tôi dùng để phản đối câu "Tham số cột của em là giá trị số xác định theo name x rồi", vì rõ ràng x đang ở vị trí tham số dòng.ọc ky
 
Upvote 0
Nhưng mà Name của em không lỗi anh nhỉ :D
May cho bạn là vùng index chỉ có 1 cột, nếu 2 cột trở lên mà cái kiểu không biết đâu là tham số dòng, đâu là tham số cột, nếu bỏ trống thì kết quả là cái gì, thì không nay thì mai thôi
 
Upvote 0
May cho bạn là vùng index chỉ có 1 cột, nếu 2 cột trở lên mà cái kiểu không biết đâu là tham số dòng, đâu là tham số cột, nếu bỏ trống thì kết quả là cái gì, thì không nay thì mai thôi
Vâng. Nhờ anh mà em mới tìm hiểu thêm về hàm Index 1 cách chi tiết, trước giờ toàn học vẹt mà anh. Cảm ơn anh!
 
Upvote 0
Web KT

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

Back
Top Bottom