Xin hỏi cách viết lệnh if so sánh giữa 2 file ?

Liên hệ QC

phamvandunghp84

Thành viên thường trực
Tham gia
5/3/20
Bài viết
241
Được thích
12
Mình muốn so sánh giá trị ở ô A1 của Sheet1 của file 1 với ô A2 của Sheet2 của file 2. Mình viết như này cho dễ hiểu nhưng lại báo lỗi, Vậy xin hỏi phải viết lại như nào mới đúng? ( 2 file này đã mở )

If Application.Workbooks("File1.xlsx").Worksheets("Sheet1").Range("A1").Value = Application.Workbooks("File2.xlsm").Worksheets("Sheet1").Range("A2").Value then
 
Mình muốn so sánh giá trị ở ô A1 của Sheet1 của file 1 với ô A2 của Sheet2 của file 2. Mình viết như này cho dễ hiểu nhưng lại báo lỗi, Vậy xin hỏi phải viết lại như nào mới đúng? ( 2 file này đã mở )

If Application.Workbooks("File1.xlsx").Worksheets("Sheet1").Range("A1").Value = Application.Workbooks("File2.xlsm").Worksheets("Sheet1").Range("A2").Value then
Nghĩ thử là bạn đang ở file 1 thì cần gì app.... Nhỉ
 
Upvote 0
Nghĩ thử là bạn đang ở file 1 thì cần gì app.... Nhỉ
mình học mò thôi không hiểu rõ VBA. Bạn có thể viết lại dòng code trên giúp mình cho đúng được k? Mình mở 2 file rồi giờ mình muốn dùng lệnh if để so sánh hai giá trị ở 2 file đó với nhau ( nếu đúng thì làm tiếp Then ...)
Bài đã được tự động gộp:

mình học mò thôi không hiểu rõ VBA. Bạn có thể viết lại dòng code trên giúp mình cho đúng được k? Mình mở 2 file rồi giờ mình muốn dùng lệnh if để so sánh hai giá trị ở 2 file đó với nhau ( nếu đúng thì làm tiếp Then ...)


If Workbooks("file1.xlsm").Worksheets("sheet1").Range("A1").Value = _
Workbooks("file2.xlsx").Worksheets("Sheet2").Range("A2").Value Then

mình thử như này cũng vẫn báo lỗi, không biết phải viết sao mới đúng nữa?
 
Upvote 0
mình học mò thôi không hiểu rõ VBA. Bạn có thể viết lại dòng code trên giúp mình cho đúng được k? Mình mở 2 file rồi giờ mình muốn dùng lệnh if để so sánh hai giá trị ở 2 file đó với nhau ( nếu đúng thì làm tiếp Then ...)
Bài đã được tự động gộp:




If Workbooks("file1.xlsm").Worksheets("sheet1").Range("A1").Value = _
Workbooks("file2.xlsx").Worksheets("Sheet2").Range("A2").Value Then

mình thử như này cũng vẫn báo lỗi, không biết phải viết sao mới đúng nữa?
Bạn đang viết code vào file nào. File 1 hay 2
 
Upvote 0
Thêm 2 dòng này vào trước dòng IF...

msgbox CStr(Workbooks("file1.xlsm").Worksheets("sheet1").Range("A1").Value)
msgbox CStr(Workbooks("file2.xlsx").Worksheets("Sheet2").Range("A2").Value)

Khi nó báo lỗi thì cho cóp lại hình báo lỗi và lỗi dòng nào, đưa lên đây.
 
Upvote 0
If Application.Workbooks("File1.xlsx").Worksheets("Sheet1").Range("A1").Value = Application.Workbooks("File2.xlsm").Worksheets("Sheet1").Range("A2").Value then [/QUOTE đã viết:
Viết code ở file1.xlsx ư?
Tôi thử Code của bạn buiquangthan thì thấy đúng
Sub ABC()
If Sheet1.Range("A1").Value = Application.Workbooks("File2.xlsx").Worksheets("Sheet2").Range("A2").Value Then
MsgBox "OK"
Else
MsgBox " Sai"
End If
End Sub
 
Upvote 0
Thêm 2 dòng này vào trước dòng IF...

msgbox CStr(Workbooks("file1.xlsm").Worksheets("sheet1").Range("A1").Value)
msgbox CStr(Workbooks("file2.xlsx").Worksheets("Sheet2").Range("A2").Value)

Khi nó báo lỗi thì cho cóp lại hình báo lỗi và lỗi dòng nào, đưa lên đây.
Mã:
Sub ABC()
If Sheet1.Range("A1").Value = Application.Workbooks("File2.xlsm").Worksheets("Sheet1").Range("A1").Value Then
MsgBox " OK"
Else
MsgBox "Sai"
End If
End Sub
Thử thế này coi sao nào

Cho mình hỏi dòng lệnh này bị sai ở đâu mà nó báo lỗi nhỉ ? mình viết rage không biết đúng k mà sửa hoài vẫn báo lỗi, không cho chạy.

Workbooks("file1.xlsm").Worksheets("Dlchuan").Range(Cells(3, k), Cells(203, k)).Value = Workbooks("file2.xlsx").Worksheets("Sheet1").Range(Cells(i, j), Cells(i + 200, j)).Value


Sub Tes_chuan_Name()
Dim k As Integer
Dim i As Integer
Dim j As Integer
Workbooks.Open ("D:\khohang\file2.xlsx")

For i = 1 To 400
For j = 2 To 8
For k = 3 To 12
If Application.Workbooks("file1.xlsm").Worksheets("Dlchuan").Cells(1, k).Value = Application.Workbooks("file2.xlsx").Worksheets("Sheet1").Cells(i, j).Value Then

Workbooks("file1.xlsm").Worksheets("Dlchuan").Range(Cells(3, k), Cells(203, k)).Value = Workbooks("file2.xlsx").Worksheets("Sheet1").Range(Cells(i, j), Cells(i + 200, j)).Value

Exit For
End If

Next k
Next j
Next i

End Sub
Bài đã được tự động gộp:

Cho mình hỏi dòng lệnh này bị sai ở đâu mà nó báo lỗi nhỉ ? mình viết rage không biết đúng k mà sửa hoài vẫn báo lỗi, không cho chạy.

Workbooks("file1.xlsm").Worksheets("Dlchuan").Range(Cells(3, k), Cells(203, k)).Value = Workbooks("file2.xlsx").Worksheets("Sheet1").Range(Cells(i, j), Cells(i + 200, j)).Value


Sub Tes_chuan_Name()
Dim k As Integer
Dim i As Integer
Dim j As Integer
Workbooks.Open ("D:\khohang\file2.xlsx")

For i = 1 To 400
For j = 2 To 8
For k = 3 To 12
If Application.Workbooks("file1.xlsm").Worksheets("Dlchuan").Cells(1, k).Value = Application.Workbooks("file2.xlsx").Worksheets("Sheet1").Cells(i, j).Value Then

Workbooks("file1.xlsm").Worksheets("Dlchuan").Range(Cells(3, k), Cells(203, k)).Value = Workbooks("file2.xlsx").Worksheets("Sheet1").Range(Cells(i, j), Cells(i + 200, j)).Value

Exit For
End If

Next k
Next j
Next i

End Sub
1596283138469.png
 
Upvote 0
Web KT
Back
Top Bottom