về cách sử dụng worksheetfuntion

Liên hệ QC

giaosy

Thành viên thường trực
Tham gia
6/12/06
Bài viết
205
Được thích
144
các bác giúp em xem tại sao cái đoạn code này lại báo lỗi với
rivate Sub CommandButton1_Click()
Dim data As Range
Dim ctn As String
Set data = Application.Range("du_lieu")
ctn = Application.WorksheetFunction.VLookup(TextBox1.Text, data, 3, 0) =======> báo lỗi ở dòng này
Label1.Caption = ctn
End Sub

cái này em làm để chạy một useform có 1 label và 1 textbox
giá trị nhập vào textbox dùng làm điều kiên để lọc dữ liệu bằng hàm vlookup và đưa kết quả vào label
cảm ơn các bác.
 

File đính kèm

  • bao loi.jpg
    bao loi.jpg
    10.2 KB · Đọc: 22
Lần chỉnh sửa cuối:
các bác giúp em xem tại sao cái đoạn code này lại báo lỗi với
rivate Sub CommandButton1_Click()
Dim data As Range
Dim ctn As String
Set data = Application.Range("du_lieu")
ctn = Application.WorksheetFunction.VLookup(TextBox1.Text, data, 3, 0) =======> báo lỗi ở dòng này
Label1.Caption = ctn
End Sub

cái này em làm để chạy một useform có 1 label và 1 textbox
giá trị nhập vào textbox dùng làm điều kiên để lọc dữ liệu bằng hàm vlookup và đưa kết quả vào label
cảm ơn các bác.
Tôi thấy code này cũng bình thường thôi, lỗi nếu có là do VLOOKUP không tìm thấy thôi
Lưu ý rằng cái bạn nhập trên TextBox luôn là String nha ---> Có khi nào bạn lại đi tìm string này trong 1 vùng có kiêu Number không vậy?
Ví dụ:
- Cột đầu tiên của vùng du_lieu là dạng số
- Khi bạn nhập số vào TextBox1 để tìm, nó sẽ chẳng hiểu, vì số vừa nhập chỉ là TEXT
 
Upvote 0
các bác giúp em xem tại sao cái đoạn code này lại báo lỗi với
rivate Sub CommandButton1_Click()
Dim data As Range
Dim ctn As String
Set data = Application.Range("du_lieu")
ctn = Application.WorksheetFunction.VLookup(TextBox1.Text, data, 3, 0) =======> báo lỗi ở dòng này
Label1.Caption = ctn
End Sub

cái này em làm để chạy một useform có 1 label và 1 textbox
giá trị nhập vào textbox dùng làm điều kiên để lọc dữ liệu bằng hàm vlookup và đưa kết quả vào label
cảm ơn các bác.

Mình thấy bình thường
Xem file nhé.
 

File đính kèm

  • WS.xls
    22.5 KB · Đọc: 17
Upvote 0
em chuyển định dạng của dữ liệu trong cột điều kiện tham chiếu thành dạng "text" rồi nhưng cũng không được. hic. Em gửi cả file lên, các bác xem lại giúp. thanks
 
Lần chỉnh sửa cuối:
Upvote 0
sao không thể đính file vào được các bác nhỉ ?
 
Lần chỉnh sửa cuối:
Upvote 0
em chuyển định dạng của dữ liệu trong cột điều kiện tham chiếu thành dạng "text" rồi nhưng cũng không được. hic. Em gửi cả file lên, các bác xem lại giúp. thanks
Thay vì chuyển cột đầu thành định dạng Text, bạn có thể sửa đoạn
PHP:
ctn = WorksheetFunction.VLookup(TextBox1.Text, Data, 3, 0)
thành:
PHP:
ctn = WorksheetFunction.VLookup(1*TextBox1.Text, Data, 3, 0)
Là xong
 
Upvote 0
Thay vì chuyển cột đầu thành định dạng Text, bạn có thể sửa đoạn
PHP:
ctn = WorksheetFunction.VLookup(TextBox1.Text, Data, 3, 0)
thành:
PHP:
ctn = WorksheetFunction.VLookup(1*TextBox1.Text, Data, 3, 0)
Là xong

bác có thể giải thích giúp em ý nghĩa của việc thêm 1* vào phía trước được không bác Ndu. thanks bác
 
Upvote 0
bác có thể giải thích giúp em ý nghĩa của việc thêm 1* vào phía trước được không bác Ndu. thanks bác
Nhân thêm 1 (hoặc cộng thêm 0) vào TextBox để biến chúng từ Text thành Number thôi
Ngoài ra còn nhiều cách khác, chẳng hạn dùng Val(TextBox1.Text)
 
Upvote 0
Sẵn cho hỏi các bạn chút:

Nếu trên trang tính tôi có công thức: If(Type(VlookUp(GPE,BangTra,3,0))=16,"", VlookUp(GPE,BangTra,3,0))

Thì trong VBA sẽ có câu lệnh thế nào vậy các bạn?

Xin cảm ơn đã quan tâm.
 
Upvote 0
Nếu trên trang tính tôi có công thức: If(Type(VlookUp(GPE,BangTra,3,0))=16,"", VlookUp(GPE,BangTra,3,0))

Thì trong VBA sẽ có câu lệnh thế nào vậy các bạn?

Xin cảm ơn đã quan tâm.
Thì em cũng viết ý chang thôi
Chẳng hạn:
PHP:
ActiveCell = "=IF(TYPE(VLOOKUP(GPE,BangTra,3,0))=16,"""", VLOOKUP(GPE,BangTra,3,0))"
Hoặc chuyển thành giá trị luôn
PHP:
ActiveCell = Evaluate("IF(TYPE(VLOOKUP(GPE,BangTra,3,0))=16,"""", VLOOKUP(GPE,BangTra,3,0))")
 
Upvote 0
Vậy có thể viết Application.WorkSheetFunction. . . gì, gì đó không vậy?
 
Upvote 0
Vậy có thể viết Application.WorkSheetFunction. . . gì, gì đó không vậy?
Thì cũng được mà sư phụ... Có điều WorksheetFunction không có hàm Type ---> Với hàm VLOOKUP thì lỗi không tìm thấy là #N/A!, vậy ta thay bằng hàm ISNA, sư phụ đồng ý chứ
Ví du:
PHP:
Sub Test()
  Dim BangTra As Range, GPE, Result
  Set BangTra = Range("A1:C10")
  On Error Resume Next
  GPE = 'gì gì đó
  With WorksheetFunction
    Result = .VLookup(GPE, BangTra, 3, 0)
    ActiveCell = IIf(.IsNA(Result), "", Result)
  End With
End Sub
 
Lần chỉnh sửa cuối:
Upvote 0
Anh chàng này đãng trí bác học rồi ta ơi! Có hàm đó, nhưng có xài được trong VBA?

TYPE
See Also
Returns the type of value. Use TYPE when the behavior of another function depends on the type of value in a particular cell.
Syntax
TYPE(value)
Value can be any Microsoft Excel value, such as a number, text, logical value, and so on.
If value is TYPE returns
Number 1
Text 2
Logical value 4
Error value 16
Array 64

Remarks
TYPE is most useful when you are using functions that can accept different types of data, such as ARGUMENT and INPUT. Use TYPE to find out what type of data is returned by a function or formula.
You cannot use TYPE to determine whether a cell contains a formula. TYPE only determines the type of the resulting, or displayed, value. If value is a cell reference to a cell that contains a formula, TYPE returns the type of the formula's resulting value.
Example
The example may be easier to understand if you copy it to a blank worksheet.
How?
Create a blank workbook or worksheet.
Select the example in the Help topic. Do not select the row or column headers.

Selecting an example from Help
Press CTRL+C.
In the worksheet, select cell A1, and press CTRL+V.
To switch between viewing the results and viewing the formulas that return the results, press CTRL+` (grave accent), or on the Tools menu, point to Formula Auditing, and then click Formula Auditing Mode.
1
2
A
Data
Smith
Formula Description (Result)
=TYPE(A2) Checks the type of the value above (2)
=TYPE("Mr. "&A2) Checks the type of "Mr. Smith" (2)
=TYPE(2+A2) Checks the type of the formula, which returns the error #VALUE! (16)
=TYPE({1,2;3,4}) Checks the type of an array constant (64)
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom