Học tập viết code VBA trong excel

Liên hệ QC

khoaitd

Thành viên mới
Tham gia
12/3/08
Bài viết
6
Được thích
2
Dear All,

Minh đang tập viết macro cho Excel. Mong các bạn chỉ dẫn thên cho mình.

VD: Mình có đoạn code sau:

Sub Macro2()
'
' Macro2 Macro
'
' Keyboard Shortcut: Ctrl+q
n = 0
m = 0
a = ActiveCell.Address
Range(a).Select
For n = 0 To 22
Range("A2").Select
ActiveCell.Offset(0, n).Copy
ActiveCell.Offset(0, n).Select
m = ActiveCell.Offset(-1, 0)
If m = 1 Then
Range(a).Select
ActiveCell.Offset(0, n).PasteSpecial
End If
Next
Range(a).Select
End Sub

Yêu cầu:
- Mình muốn copy Công thứ từ 1 hàng cho trước đã format chuẩn.
- Từ Bắt đầu từ o hiện hành ấn Ctrl - q sẽ copy từ dòng chuẩn xuống dòng hiện hành(dòng muốn copy)
Ở đây dòng chuẩn là là dòng A2 (dòng A1 là dòng dùng để làm điều kiện để copy nếu = 1 thì copy, = 0thì không copy). Có tổng cộng 22 cột muốn copy.

Đoạn code đã chạy ok. Tuy nhiên nhờ các bạn xem có cách viết nào tốt hơn không, để học hỏi và trao dồi thêm.
 
Có thể bạn gửi File lên cho dễ hình dung, chứ còn copy thì cần gì vòng lặp:

PHP:
Sub CopyCongThuc()
  If ActiveCell.Row <= 2 Then Exit Sub
  If Sheet1.[A1] = 1 Then
    Sheet1.[A2:V2].Copy
    ActiveCell.PasteSpecial 2
  End If
End Sub
 

File đính kèm

  • Book1.xls
    37.5 KB · Đọc: 395
Upvote 0
Dear All,

Minh đang tập viết macro cho Excel. Mong các bạn chỉ dẫn thên cho mình.

VD: Mình có đoạn code sau:

Sub Macro2()
'
' Macro2 Macro
'
' Keyboard Shortcut: Ctrl+q
n = 0
m = 0
a = ActiveCell.Address
Range(a).Select
For n = 0 To 22
Range("A2").Select
ActiveCell.Offset(0, n).Copy
ActiveCell.Offset(0, n).Select
m = ActiveCell.Offset(-1, 0)
If m = 1 Then
Range(a).Select
ActiveCell.Offset(0, n).PasteSpecial
End If
Next
Range(a).Select
End Sub

Yêu cầu:
- Mình muốn copy Công thứ từ 1 hàng cho trước đã format chuẩn.
- Từ Bắt đầu từ o hiện hành ấn Ctrl - q sẽ copy từ dòng chuẩn xuống dòng hiện hành(dòng muốn copy)
Ở đây dòng chuẩn là là dòng A2 (dòng A1 là dòng dùng để làm điều kiện để copy nếu = 1 thì copy, = 0thì không copy). Có tổng cộng 22 cột muốn copy.

Đoạn code đã chạy ok. Tuy nhiên nhờ các bạn xem có cách viết nào tốt hơn không, để học hỏi và trao dồi thêm.
Lằng nhằng quá
Chạy code, đoán ý... cuối cùng sửa lại thành vầy:
PHP:
Sub Macro2()
  If Range("A1") = 1 Then Range("A2:W2").Copy Cells(ActiveCell.Row, 1)
End Sub
 
Upvote 0
Lằng nhằng quá
Chạy code, đoán ý... cuối cùng sửa lại thành vầy:
PHP:
Sub Macro2()
If Range("A1") = 1 Then Range("A2:W2").Copy Cells(ActiveCell.Row, 1)
End Sub

Đúng là code Thầy quá hay và ngắn, tuy nhiên cần bẫy chút xíu ở hàng điều kiện và hàng công thức để tránh đặt nhầm chỗ rồi bấm chạy code thì lại ẹc ... ẹc ...

PHP:
Sub Macro2()
  If ActiveCell.Row <= 2 Then Exit Sub
  If Range("A1") = 1 Then Range("A2:W2").Copy Cells(ActiveCell.Row, 1)
End Sub
 
Upvote 0
Đúng là code Thầy quá hay và ngắn, tuy nhiên cần bẫy chút xíu ở hàng điều kiện và hàng công thức để tránh đặt nhầm chỗ rồi bấm chạy code thì lại ẹc ... ẹc ...

PHP:
Sub Macro2()
  If ActiveCell.Row <= 2 Then Exit Sub
  If Range("A1") = 1 Then Range("A2:W2").Copy Cells(ActiveCell.Row, 1)
End Sub
Ẹc... Ẹc... If ActiveCell.Row =1 Then Exit Sub là được rồi... ActiveCell.Row =2 đâu có vấn đề gì chứ
 
Upvote 0
Thank! Bạn Tuy nhiên điều kiện phải xét từng Cột. Nếu cốt nào mình muốn copy thì set nó =1 không thì cho no =0 để khỏi copy.
 
Upvote 0
Thank! Bạn Tuy nhiên điều kiện phải xét từng Cột. Nếu cốt nào mình muốn copy thì set nó =1 không thì cho no =0 để khỏi copy.
Với file của bạn thì làm vầy:
PHP:
Sub Test()
  Dim i As Long
  If ActiveCell.Row > 2 Then
    For i = 1 To 7
      If Cells(1, i) = 1 Then Cells(3, i).Copy Cells(ActiveCell.Row, i)
    Next
  End If
End Sub
 
Upvote 0
Nhờ các anh chị em trên diễn đàn giúp đỡ

Em có file exel này muốn viết một đoạn code vba, để khi mình gõ MHDM ở bảng PTDG thì công hang mục công việc bên bảng DINHMUC hiển thị trên bảng PTDG, mong các bác chỉ giáo giúp, em không biết VBA,
 
Upvote 0
Em có file này mong các bác chỉ giáo giúp để lấy dự liệu từ bang dinhmuc sang bảng ptdg khi gõ mhdm vào bảng ptdg.
 
Upvote 0
Nhờ mọi người trên diễn đàn có thể giúp em code VBA trong Excel để tổng hợp số liệu theo từ SHEET_TONG tạo ra các sheet mới cho mỗi quận , mỗi quận là một sheet theo mẫu ở sheet bieu1. Quận tân bình em đã làm tay và đã tổng hợp xong theo mẫu ở biểu sheet bieu1, còn lại 2 quận nữa em chưa làm chưa mọi người viết giùm em , ở đây là em đưa lên 3 quận, để nhờ mọi người viết giùm, thật ra số liệu nó rất lớn, còn nhiều quận khác nữa, em chỉ đưa lên 3 quận, nhờ mọi người viết giùm em để tiện cho việc tổng hợp. Trong sheet SHEET_TONG còn có nhiều quận khác nữa.Hihi
Cảm ơn mọi người nhiều.
 

File đính kèm

  • Tổng hợp số liệu theo mẫu.rar
    51.1 KB · Đọc: 104
Upvote 0
Nhờ mọi người trên diễn đàn có thể giúp em code VBA trong Excel để tổng hợp số liệu theo từ SHEET_TONG tạo ra các sheet mới cho mỗi quận , mỗi quận là một sheet theo mẫu ở sheet bieu1. Quận tân bình em đã làm tay và đã tổng hợp xong theo mẫu ở biểu sheet bieu1, còn lại 2 quận nữa em chưa làm chưa mọi người viết giùm em , ở đây là em đưa lên 3 quận, để nhờ mọi người viết giùm, thật ra số liệu nó rất lớn, còn nhiều quận khác nữa, em chỉ đưa lên 3 quận, nhờ mọi người viết giùm em để tiện cho việc tổng hợp. Trong sheet SHEET_TONG còn có nhiều quận khác nữa.Hihi
Cảm ơn mọi người nhiều.
Bạn là thành viên mới nên đọc nội quy diễn đàn kỹ bạn nhé, bạn chen ngang liên tiếp vào 3 topic ko liên quan gì đến vấn đề bạn đang hỏi, vô duyên quá trời luôn.
Bạn nên mở một topic mới trong mục lập trình với Excel hoặc VBA
 
Upvote 0
Viết code thay thế cho hàm IF và Vlookup, liên kết form.
Em có File Excel nhưng chưa biết viết code để liên kết form vào sheet và code thay thế cho hàm if kết hợp Vlookup nhiều điều kiện. Vậy nên em tải file lên nhờ các anh chị trên diễn đàn giúp đỡ. Vì có nhiều vấn đề cần giải quyết nên không thể viết hết lên đây được, nên em viết cụ thể các vấn đề đó chong file rồi.
Rất mong các anh chị, em sớm giúp đỡ. Em xin chân thành cảm ơn!
Nếu có thể các anh, chị, em có thể giải càng cụ thể càng tốt để em được học hỏi.
 

File đính kèm

  • Nhờ các Anh, chị em giúp đỡ VBA.xls
    75 KB · Đọc: 46
Upvote 0
Viết code thay thế cho hàm IF và Vlookup, liên kết form.
Em có File Excel nhưng chưa biết viết code để liên kết form vào sheet và code thay thế cho hàm if kết hợp Vlookup nhiều điều kiện. Vậy nên em tải file lên nhờ các anh chị trên diễn đàn giúp đỡ. Vì có nhiều vấn đề cần giải quyết nên không thể viết hết lên đây được, nên em viết cụ thể các vấn đề đó chong file rồi.
Rất mong các anh chị, em sớm giúp đỡ. Em xin chân thành cảm ơn!
Nếu có thể các anh, chị, em có thể giải càng cụ thể càng tốt để em được học hỏi.
cái này là viêt luôn ứng dụng cho bạn dùng chứ bạn có viết được đoạn code nào đâu.
khi lên đây hỏi thì chỉ hỏi khi mình đã làm được cái gì đó rồi và đang bị bí. chứ xem file bạn yêu cầu tôi dắm chắc là không ai rãnh mà giúp bạn hết được các yêu cầu trong file. vì yêu cầu quá nhiều,+-+-+-+
 
Upvote 0
cái này là viêt luôn ứng dụng cho bạn dùng chứ bạn có viết được đoạn code nào đâu.
khi lên đây hỏi thì chỉ hỏi khi mình đã làm được cái gì đó rồi và đang bị bí. chứ xem file bạn yêu cầu tôi dắm chắc là không ai rãnh mà giúp bạn hết được các yêu cầu trong file. vì yêu cầu quá nhiều,+-+-+-+

thì anh LDT cứ chọn đại 1 yêu cầu nào đó ngắn nhất trong đó để làm --=0--=0
 
Upvote 0
Cảm ơn bác Lê Duy Thương đã chỉ bảo. Thật sự em chưa biết chút mào về Code cả. Các bác có thể giúp em viết phần Trong sheetDK_TIEM được không? Hoặc được ít nào hay ít đó. Còn liên kết Form thì để em mày mò học hỏi dần. Vì điều kiện của SheetDK_TIEM khó quá thật sự em không thể làm được, Mà tìm kiếm tài liệu thì hơi ít hơn so với tài liệu liên kết Form. Cảm ơn các bác nhiều
 
Upvote 0
Cảm ơn bác Lê Duy Thương đã chỉ bảo. Thật sự em chưa biết chút mào về Code cả. Các bác có thể giúp em viết phần Trong sheetDK_TIEM được không? Hoặc được ít nào hay ít đó. Còn liên kết Form thì để em mày mò học hỏi dần. Vì điều kiện của SheetDK_TIEM khó quá thật sự em không thể làm được, Mà tìm kiếm tài liệu thì hơi ít hơn so với tài liệu liên kết Form. Cảm ơn các bác nhiều
Tôi thấy bạn nên giải thích thêm là
Làm sao để xác định trẻ chưa được tiêm "BCG"?
Làm sao để xác định trẻ đã được tiêm "Quivaxem1"?
nếu xác định được cái này tôi nghĩ bạn sẽ làm được
 
Upvote 0
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Web KT
Back
Top Bottom