Sub copy()
With Sheets("DATA")
.Cells(65536, 3).End(xlUp).Offset(2, 0).Value = Sheets("ND_sua").Range("C2").Value
.Cells(65536, 3).End(xlUp).Offset(0, 1).Value = Sheets("ND_sua").Range("D2").Value
.Cells(65536, 3).End(xlUp).Offset(0, 2).Value = Sheets("ND_sua").Range("E4").Value
.Cells(65536, 3).End(xlUp).Offset(0, 3).Value = Sheets("ND_sua").Range("E5").Value
.Cells(65536, 3).End(xlUp).Offset(0, 4).Value = Sheets("ND_sua").Range("E6").Value
.Cells(65536, 3).End(xlUp).Offset(0, 5).Value = Sheets("ND_sua").Range("E7").Value
.Cells(65536, 3).End(xlUp).Offset(0, 6).Value = Sheets("ND_sua").Range("E8").Value
End With
End Sub
Mình sưu tầm được 1 đoạn code sửa số liệu nhưng mình làm thì code không ghi được
Nhờ ACE sửa lại dùm mình đoạn code trên ( có file đính kèm - nội dung mình ghi trong file)
Rất mong được sự giúp đỡ của ACE GPE
Nhìn vào dữ liệu trong sheet của bạn, tôi nghĩ bạn nên sửa lại code như thế này:Mình sưu tầm được 1 đoạn code sửa số liệu nhưng mình làm thì code không ghi được
Nhờ ACE sửa lại dùm mình đoạn code trên ( có file đính kèm - nội dung mình ghi trong file)
Rất mong được sự giúp đỡ của ACE GPE
Sub Sua_phieu()
Dim FindRange As Range
Dim SoPhieuThu As String
SoPhieuThu = Sheets("ND_sua").Range("C2").Value
Set FindRange = Range(Sheets("DATA").Range("C6"), Sheets("DATA").Range("C" & Rows.Count).End(xlUp))
Set FindRange = FindRange.Find(What:=SoPhieuThu, LookIn:=xlValues, LookAt:=xlWhole)
If FindRange Is Nothing Then
MsgBox "Ban dien phieu thu không chính xác!"
Else
Dim r As Long
Dim ArrEdit(), ArrNewInfor(), ArrCols()
ArrEdit = FindRange.Resize(, 9)
ArrCols = Array(0, 4, 5, 6, 8, 9)
ArrNewInfor = Sheets("ND_sua").Range("E4:E8").Value
For r = 1 To 5
If ArrNewInfor(r, 1) > "" Then
ArrEdit(1, ArrCols(r)) = ArrNewInfor(r, 1)
End If
Next
FindRange.Resize(, 9) = ArrEdit
Sheets("ND_sua").Range("E4:E8").ClearContents
End If
End Sub
Bạn dùng Code này nhé do anh em diễn đàn viết đó
PHP:Sub copy() With Sheets("DATA") .Cells(65536, 3).End(xlUp).Offset(2, 0).Value = Sheets("ND_sua").Range("C2").Value .Cells(65536, 3).End(xlUp).Offset(0, 1).Value = Sheets("ND_sua").Range("D2").Value .Cells(65536, 3).End(xlUp).Offset(0, 2).Value = Sheets("ND_sua").Range("E4").Value .Cells(65536, 3).End(xlUp).Offset(0, 3).Value = Sheets("ND_sua").Range("E5").Value .Cells(65536, 3).End(xlUp).Offset(0, 4).Value = Sheets("ND_sua").Range("E6").Value .Cells(65536, 3).End(xlUp).Offset(0, 5).Value = Sheets("ND_sua").Range("E7").Value .Cells(65536, 3).End(xlUp).Offset(0, 6).Value = Sheets("ND_sua").Range("E8").Value End With End Sub
Cảm ơn bạn Hoàng Trong Nghĩa rất nhiều.
Bạn cho mình hỏi thêm nhé mình không hiểu 3 dòng này, bạn giải thích thêm cho mình được không ?
cái gi khôgn hiểu mình phải hỏi bạn thông cảm nhé .
Mã:Dim ArrEdit(), ArrNewInfor(), ArrCols() ArrEdit = FindRange.Resize(, 9) ArrCols = Array(0, 4, 5, 6, 8, 9)
yêu cầu của mình được giải quyết. Cảm ơn bạn Hoàng Trong Nghĩa rất nhiều.
Bạn cho mình hỏi thêm nhé mình không hiểu 3 dòng này, bạn giải thích thêm cho mình được không ?
cái gi khôgn hiểu mình phải hỏi bạn thông cảm nhé .
Dim ArrEdit(), ArrNewInfor(), ArrCols()
ArrEdit = FindRange.Resize(, 9)
ArrCols = Array(0, 4, 5, 6, 8, 9)
Bác Sa nói vậy em sợ quá, em là học trò của Bác Sa mà bác Sa nói vậy em tổn thọ, không dám nhận đâu, sợ khiếp mất!Cụ thể là thêm 3 dòng vô nơi cần thiết & . . .
Dòng lệnh 1 là khai báo 3 tham biếm dạng mảng;
Dòng lệnh kế nó là gán dữ liệu cho mảng đã khai báo;
Dòng cuối: Tương tự như dòng trên nó
Để hiểu sâu về những tham biến này, bạn cần đọc nhiều bài trả lời về VBA của cao thủ HTN hơn!