Cái này tương đối đơn giản, bạn có thể tự mình làm dược bằng cách vào Menu Tools / Macro / Record new Macro... Rồi làm thật chính xác từng thao tác là OK
Bạn bổ sung thêm và sắp nó lại theo thứ tự A,B,C. (trở tay không kịp luôn. hi hi) : Còn sắp theo thứ tự A B C thì còn tùy theo bảng mã mà bạn sử dụng để có đoạn code thích hợp
Bạn hãy thử xem
Cái này tương đối đơn giản, bạn có thể tự mình làm dược bằng cách vào Menu Tools / Macro / Record new Macro... Rồi làm thật chính xác từng thao tác là OK
Bạn bổ sung thêm và sắp nó lại theo thứ tự A,B,C. (trở tay không kịp luôn. hi hi) : Còn sắp theo thứ tự A B C thì còn tùy theo bảng mã mà bạn sử dụng để có đoạn code thích hợp
Bạn hãy thử xem
Cái này tương đối đơn giản, bạn có thể tự mình làm dược bằng cách vào Menu Tools / Macro / Record new Macro... Rồi làm thật chính xác từng thao tác là OK
Bạn bổ sung thêm và sắp nó lại theo thứ tự A,B,C. (trở tay không kịp luôn. hi hi) : Còn sắp theo thứ tự A B C thì còn tùy theo bảng mã mà bạn sử dụng để có đoạn code thích hợp
Bạn hãy thử xem
Record new macro giống như một máy ghi âm vậy nó khi lại những thao tác bạn đã làm bằng mã lệnh. Nếu bạn chưa từng làm thì hãy làm thử đi đây là một tiện ích rất hay của excel nó giúp chúng ta thực hiện lại mộo thao tác một cách nhanh chóng. Còn để chạy thì bạn có thể vào toolbars/forms và chọn một nút lệnh và kéo bỏ vào trong sheet sau đó click chọn nút đó và click nút chuột phải chọn Assign macro chọn tên câu lệnh đã được ghi ( Thường excel chọn tên lệnh giúp bạn là Macro1). Chúc bạn thành công
Bấm vào nút Record New macro, đặt tên cho macro... sau đó cứ làm tất cả những công việc gì mà bạn muốn sau này con macro sẽ bắt chước (chẳng hạn như copy, paste, ẩn sheet) Tóm lại tất cả những công việc gì bạn đang làm thì macro sẽ ghi lại tất tần tật, sau này nó bắt chước y như bạn thôi
Muốn chạy macro bằng nút lệnh thì vẽ 1 nút nhấn từ thanh Forms, (hình chử nhật)... Khi bạn vừa vẽ xong, lập tức sẽ có 1 hộp thoại hiện ra hỏi bạn muốn liên kết nút này tới macro nào... Bạn chỉ tên macro mà hồi nảy bạn vừa tạo... vậy là xong... Từ nay, cứ bấm vào nút ấy thì macro sẽ bắt chước toàn bộ công việc mà bạn đã dạy nó
Chúc thành công
ANH TUẤN
Sub copy_4()
Dim sourceRange As Range
Dim destrange As Range
Dim Lc As Integer
Lc = Lastcol(Sheets("Sheet2")) + 1
Set sourceRange = Sheets("Sheet1").Columns("A:A")
Set destrange = Sheets("Sheet2").Columns(Lc)
sourceRange.Copy destrange
End Sub
Sub copy_4_Values_PasteSpecial()
Dim sourceRange As Range
Dim destrange As Range
Dim Lc As Integer
Application.ScreenUpdating = False
Lc = Lastcol(Sheets("Sheet2")) + 1
Set sourceRange = Sheets("Sheet1").Columns("A:A")
Set destrange = Sheets("Sheet2").Columns(Lc)
sourceRange.Copy
destrange.PasteSpecial xlPasteValues, , False, False
Application.CutCopyMode = False
Application.ScreenUpdating = True
End Sub
Sub copy_4_Values_ValueProperty()
Dim sourceRange As Range
Dim destrange As Range
Dim Lc As Integer
Lc = Lastcol(Sheets("Sheet2")) + 1
Set sourceRange = Sheets("Sheet1").Columns("A:A")
Set destrange = Sheets("Sheet2").Columns(Lc). _
Resize(, sourceRange.Columns.Count)
destrange.Value = sourceRange.Value
End Sub
Thay vì dùng
Mã:
Set sourceRange = Sheets("Sheet1").Columns("A:A")
Bạn có thể dùng code sau nếu muốn copy nhiều hơn một cột
Mã:
Set sourceRange = Sheets("Sheet1").Columns("A:C")
Bạn cũng có thể dùng đoạn code sau để copy cột của ô hiện tại
Bạn hãy làm thế này là đơn giản nhất: - Bấm chuột phải vào bất kỳ một biểu tượng trên thanh công cụ => chọn Form => chọn nút hình chữ nhật có tên là button => bạn bấm vào một nơi bất kỳ trong bảng tính xuất hiện khung Assign macro => bạn bấm vào nút Record bấm tiếp OK và sau đó bạn làm lần lượt các thao tác như ý mà bạn muốn ( Copy Từ Sheet1, cột B3 sang Sheet2 Cột A3, và sắp nó lại theo thứ tự A,B,C ) và nhớ thật chuẩn xác . xong rồi bạn nhấn vào nút vuông của hộp thoại nhỏ xuất hiện khi bạn ghi Stop record . xong xuôi bạn xoá đi và thể bấm vào nút mà bạn vẽ trong bảng tính nó sẽ làm y hệt như bạn vừa làm . Chúc bạn thành công.
Xin các ban hướng dẫn mình làm công việc sau tí: file mình có 2 sheet Hóa Đơn Bán Lẻ và Lưu Trữ ( HĐBL và LUUTRU). Sau khi nhập số liệu đầy đủ vào sheet HĐBL vd Hóa đơn số 01, số liệu sẽ được copy qua sheet LUUTRU để lưu lại.Sau đó xoá hóa đơn số 01 trong sheet HĐBL để tiếp tục nhập HĐ số 02,03....Có cách nào để mở lại HĐ đã lưu trữ để chỉnh sửa mà không cần phải nhập lại từ đầu không mong các bạn chỉ mình làm tí. Mình xin cảm on nhiều.
Xin các ban hướng dẫn công việc sau: Mình có 2 sheet HĐBL và LUUTRU. Sau khi nhập số liệu đủ vào sheet HĐBL vd Hóa đơn số 01, số liệu sẽ được copy qua sheet LUUTRU
.Sau đó xoá hóa đơn số 01 trong sheet HĐBL để tiếp tục nhập HĐ số 02,03....Có cách nào để mở lại HĐ đã lưu trữ để chỉnh sửa mà không cần phải nhập lại từ đầu không mong các bạn chỉ mình làm tí. Mình xin cảm on nhiều.
Sẽ có 1 số trường hợp diễn ra như sau:
(*) Cần sửa ngay Record vừa nhập; như vậy chu trình của bạn cần cân nhắc, có nên xóa form dữ liệu vừa nhập hay không?!
(+) Tại đây, bạn cũng cần 1 macro để chép vùng chứa record vô 'LuuTru' (Nếu bạn cần, ta sẽ bàn sau)
(*) Một khi cần lôi thằng cũ trước nhiều cái chú đang nhập, ví dụ vừa nhập xong Record thứ 98,đên1 cái 99 này lại gần giống với cái 95-97, thì bạn làm theo hướng dẫn từ xa, như sau:
* Sang trang 'LuủTuu', tô chọn vùng 'A2:A99', Sau đó nhấn chuột vô ngăn trái nhứt của thanh công cụ có thanh côing thức; Bạn nhập vô đó 'KhHg' & {ENTER} - Những hành động đó là ta đã gán tên cho vùng dữ liệu mà ta đã chọn.
* Sang trang tính 'HDBL', Chọn ô [H2], vô menu Data, Chọn dòng Validation & gán ô này với tên bạn vừa thực hiện bên trang tính 'LuuTru'
Công việc theo ý chúng ta muốn đạt được là ở ô này có 1 danh sách khách hàng đổ xuống để ta chọn
(Cần nói thêm, Sau này, chúng ta sẽ chỉ nên làm danh sách đỗ xuống này là duy nhất, không lập lại í mà!)
* Chép macro sau vô ngăn SheetName:
PHP:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, [H2]) Is Nothing Then
Dim Sh As Worksheet, Rng As Range, sRng As Range
Set Sh = Sheets("LuuTru")
Set Rng = Sh.Range(Sh.[a1], Sh.[a1].End(xlDown))
Set sRng = Rng.Find(Target, , xlFormulas, xlWhole)
If sRng Is Nothing Then
MsgBox "Chua Co Du Lieu Nay!", , "GPE.COM": Exit Sub
Else
With sRng
[g2].Value = .Offset(, 1).Value: [C3].Value = .Value
[B4].Value = .Offset(, 2).Value: [B6].Value = .Offset(, 3).Value
[c6].Value = .Offset(, 4).Value: [D6].Value = .Offset(, 5).Value
[E6].Value = .Offset(, 6).Value: [F6].Value = .Offset(, 7).Value
End With
End If
End Sub
(Cách chép: Phải chuột vô tên 'HDBL' và chọn dòng cuối trong menu vừa xuất hiện để vô cửa sổ VBE; Thực hiện dán macro vô CS này) Chú ý: Mình đã thêm bên 'LuuTru' cột bên cạnh cột 'A' để lưu số hiệu hóa đơn ('G2')
+ Hễ bạn chọn tên người khách hàng nào đó trong [H2] thì các dữ liệu liên quan sẽ tái hiện đúng nơi bạn thích;
+ Tiến hành chỉnh sửa &
+ Nhấn nút lệnh để chép tiếp vô 'LuuTru' record vừa sửa xong!