nguyenhoangtuananh9897
Thành viên mới
- Tham gia
- 6/4/22
- Bài viết
- 38
- Được thích
- 11
Sửa thế này coi nàoChào mọi người,
Mình có đoạn code để copy dữ liệu cột I sheet3 sang cột A và B sheet1. Mình mới tập viết code nên không biết sai ở đâu. Mong mọi người hỗ trợ.
Cám ơn mọi người.
Sub B()
Dim lr As Long
lr = Sheets("Sheet3").Range("I" & Rows.Count).End(xlUp).Row
With Sheets("Sheet1")
.Range("A:B").ClearContents
.Range("A2:B" & lr).Value = Sheets("Sheet3").Range("I2:I" & lr).Value
End with
End Sub
Bạn @BuiQuangThuan mà đã giúp thì OK rồi.Cám ơn @BuiQuangThuan rất nhiều. Code chạy tốt
Thường thì chia làm hai món, nếu ổn cả thì code chạy tốt, còn không thì code chạy dốt anh nhỉ.Bạn @BuiQuangThuan mà đã giúp thì OK rồi.
Không đâu. Mình cứ viết và sẽ lên tay. Chỉ 2 năm giao lưu trên GPE, khả năng viết code của tôi (tôi thấy rõ) là hơn 20 năm trước đó. Nhưng... vẫn sai và sai. Và sai thì sửa thôi.Thường thì chia làm hai món, nếu ổn cả thì code chạy tốt, còn không thì code chạy dốt anh nhỉ.
Em sai nhiều đến mức giờ không muốn viết nữa vì ngại sửa.Không đâu. Mình cứ viết và sẽ lên tay. Chỉ 2 năm giao lưu trên GPE, khả năng viết code của tôi (tôi thấy rõ) là hơn 20 năm trước đó. Nhưng... vẫn sai và sai. Và sai thì sửa thôi.
Anh lại chê cười rồiBạn @BuiQuangThuan mà đã giúp thì OK rồi.
Cái này có lẽ đúng ạ. Cứ lâu lâu không sờ tới cót két là y rằng tự nhiên bị lag. Mãi không nghĩ ra cách giải quyết ấy. Chỉ cần ai chấm nhẹ 1 cái có khi lại ra ngayKhông đâu. Mình cứ viết và sẽ lên tay. Chỉ 2 năm giao lưu trên GPE, khả năng viết code của tôi (tôi thấy rõ) là hơn 20 năm trước đó. Nhưng... vẫn sai và sai. Và sai thì sửa thôi.
Vẫn phải học các anh chị thầy cô nhiều ạThường thì chia làm hai món, nếu ổn cả thì code chạy tốt, còn không thì code chạy dốt anh nhỉ.
For i = lr_sh_bckho To 2 Step -1
If Cells(i, 2).Text = "#N/A" Then
Cells(i, 2).Delete Shift:=xlUp
Cells(i, 3).Delete Shift:=xlUp
Cells(i, 4).Delete Shift:=xlUp
Cells(i, 5).Delete Shift:=xlUp
Cells(i, 6).Delete Shift:=xlUp
End If
Next i
Bạn thử thế này xem sao.For i = lr_sh_bckho To 2 Step -1
If Cells(i, 2).Text = "#N/A" Then
for j = 2 to 6
Cells(i, j).Delete Shift:=xlUp
next j
End If
Next i
Cells(i, 2) = Range("B" & i) chứ có gì đâu nhỉ.Cám ơn 2 bạn @Phuocam và @Hoàng Tuấn 868 .
Mình thắc mắc nếu dùng Range trong trường hợp này thì sẽ như thế nào nhỉ. Ban đầu mình dùng Range nhưng báo lỗi nên mình chuyển qua dùng Cells.
Cells(i, 2).Resize(1, 5) = Range("B" & i & ":F" & i ) ?Cells(i, 2) = Range("B" & i) chứ có gì đâu nhỉ.
Viết Range thì được hỗ trợ cú pháp sau đó chứ viết Cells thì tự thân vận động.
Nên tự thử đi thử lại các trường hợp trước khi hỏi.Cells(i, 2).Resize(1, 5) = Range("B" & i & ":F" & i ) ?
Để xoá cả dòng i mình có thể dùng Row(i & ":" & i).Delete Shift:=xlUp không?
Mình đang gặp khó ở vấn đề kết hợp biến i vào Cells, Range và Row vì không biết cách thức viết đúng là như thế nào
Hiểu thế cũng được.Cells(i, 2).Resize(1, 5) = Range("B" & i & ":F" & i ) ?
Nếu ý định của bạn xoá những dòng ở cột B bị lỗi #NA trong khi dữ liệu nhiều thì code khi chạy có thể quay đắm đuối đóĐể xoá cả dòng i mình có thể dùng Row(i & ":" & i).Delete Shift:=xlUp không?
Quay đến khi chết đuối đó.quay đắm đuối đó