Tôi có macro VBA sao chép hàng từ một trang tính sang bảng tính khác dựa trên việc tìm giá trị trong ô trong 3 cột. Macro hoạt động nhưng gặp sự cố khi nó đạt đến hàng 32767. Không có công thức hoặc định dạng đặc biệt nào trong hàng này. Hơn nữa, tôi đã lấy hàng đó ra, nhưng nó vẫn treo trên số hàng đó. Đây có phải là một hạn chế trong excel? Có một số 43000 trong bảng tính được là quá trìnhVBA Macro treo sau 32000 hàng
Vì vậy, tôi yêu cầu những gì là sai với vĩ mô của tôi và làm thế nào tôi có thể lấy nó đến cuối của bảng tính:
Dim LSearchRow As Integer
Dim LCopyToRow As Integer
Dim wks As Worksheet
On Error GoTo Err_Execute
Đối Mỗi wks Trong Worksheets
LSearchRow = 4
LCopyToRow = 4
ThisWorkbook.Worksheets.Add After:=Worksheets(Worksheets.Count)
Set wksCopyTo = ActiveSheet
wks.Rows(3).EntireRow.Copy wksCopyTo.Rows(3)
While Len(wks.Range("A" & CStr(LSearchRow)).Value) > 0
If wks.Range("AB" & CStr(LSearchRow)).Value = "Yes" And wks.Range("AK" & CStr(LSearchRow)).Value = "Yes" And wks.Range("BB" & CStr(LSearchRow)).Value = "Y" Then
Rows(CStr(LSearchRow) & ":" & CStr(LSearchRow)).Select
Selection.Copy
wksCopyTo.Select
wksCopyTo.Rows(CStr(LCopyToRow) & ":" & CStr(LCopyToRow)).Select
wksCopyTo.Paste
'Move counter to next row
LCopyToRow = LCopyToRow + 1
'Go back to Sheet1 to continue searching
wks.Select
End If
LSearchRow = LSearchRow + 1
Wend
Application.CutCopyMode = False
Range("A3").Select
MsgBox "All matching data has been copied."
Next wks
Exit Sub
Err_Execute:
MsgBox "An error occurred."
Xin vui lòng trợ giúp!
IIRC Kiểu 'Integer' của VBA rộng 16 bit. Có một 'Long'? Tôi quên mất. – cHao
tra cứu Integer trong sự giúp đỡ, sau đó thay đổi nó thành Long –
Cảm ơn mọi người - nhưng tất cả những gì tôi cần làm là thay đổi kiểu dữ liệu thành một số – Andy5