Học tập viết code VBA trong excel (1 người xem)

  • Thread starter Thread starter khoaitd
  • Ngày gửi Ngày gửi
Liên hệ QC

Người dùng đang xem chủ đề này

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

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

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

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
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!

Hình như 1 em bé đến hết tuổi tiêm VX sẽ fải trãi qua vài ba lần tiêm 1 loại VX; Nếu là như vậy thì CSDL của bạn sẽ fá sản trong vận hành nay mai!

Theo mình bạn cần 1 trang tính, ngoài trang NSL_TMPS coi như được, chúng ta cần xây dựng 1 trang theo dõi trẻ tiêm các loại VX như cấu trúc dưới đây:

[STT], [Mã Trẻ], [Ngày tiêm], [Lần Tiêm], [Loại VX], [Ghi chú]

Có nghĩa là biến trang dữ liệu ngang đang có trong trang NL_TTUVX của bạn thành trang dữ liệu dọc như cấu trúc trên.
 
Upvote 0
cảm ơn bác HYen17 tôi sẽ nghiên cứu và học hỏi thêm, khi nào tạm ổn tôi sẽ gửi lên để các bác góp ý thêm
 
Upvote 0
Bác ơi, Để xác định trẻ đã được tiêm loại vacxin nào thì dựa vào sheelNL_TIEM.
Khi trẻ đã được tiêm thì mình nhập ngày tháng năm tiêm từng loại vacxin vào cột tương ứng bên SheelNL_TIEM, trẻ nào chưa được tiêm thì để trống. Em dùng hàm if và Vlookup nhưng có quá nhiều điều kiện nên không được. Mong các bác giúp đỡ.
 
Upvote 0
Hình như 1 em bé đến hết tuổi tiêm VX sẽ fải trãi qua vài ba lần tiêm 1 loại VX; Nếu là như vậy thì CSDL của bạn sẽ fá sản trong vận hành nay mai!

Theo mình bạn cần 1 trang tính, ngoài trang NSL_TMPS coi như được, chúng ta cần xây dựng 1 trang theo dõi trẻ tiêm các loại VX như cấu trúc dưới đây:

[STT], [Mã Trẻ], [Ngày tiêm], [Lần Tiêm], [Loại VX], [Ghi chú]

Có nghĩa là biến trang dữ liệu ngang đang có trong trang NL_TTUVX của bạn thành trang dữ liệu dọc như cấu trúc trên.


Em cũng đã thử làm như bác rồi nhưng khi kết hợp hàm if và vlookup để dò tìm thì nó chỉ lấy Mã trẻ đầu tiên tìm thấy và cho kết quả ấy. Những lần tiêm sau thì không được.
 
Upvote 0
Bạn tham khảo file này, thử coi:

**~** **~** **~**
 
Chỉnh sửa lần cuối bởi điều hành viên:
Upvote 0
Hình như 1 em bé đến hết tuổi tiêm VX sẽ fải trãi qua vài ba lần tiêm 1 loại VX; Nếu là như vậy thì CSDL của bạn sẽ fá sản trong vận hành nay mai!

Theo mình bạn cần 1 trang tính, ngoài trang NSL_TMPS coi như được, chúng ta cần xây dựng 1 trang theo dõi trẻ tiêm các loại VX như cấu trúc dưới đây:

[STT], [Mã Trẻ], [Ngày tiêm], [Lần Tiêm], [Loại VX], [Ghi chú]

Có nghĩa là biến trang dữ liệu ngang đang có trong trang NL_TTUVX của bạn thành trang dữ liệu dọc như cấu trúc trên.
Nếu là tôi tôi sẽ bố trí dữ liệu có kế hoạch tiêm chủng như thế này.(file đính kèm)
sau đó sẽ lọc trẻ em đén kế hoạch tiêm chủng hàng tháng ngày 9 và 17đưa vào sheet DK_TIEM
khỏe re.
tạm thời chưa nói đến form
 

File đính kèm

Upvote 0
Mình cho rằng file thế này đã là tương đối;
Xin mời các bạn góp ý!
 
Lần chỉnh sửa cuối:
Upvote 0
Nếu là tôi tôi sẽ bố trí dữ liệu có kế hoạch tiêm chủng như thế này.(file đính kèm)
sau đó sẽ lọc trẻ em đén kế hoạch tiêm chủng hàng tháng ngày 9 và 17đưa vào sheet DK_TIEM
khỏe re.
tạm thời chưa nói đến form
Cảm ơn bác nhưng có điều vì một lý do nào đó trẻ không tiêm đúng lịch được mà có thể 1 hoặc 2, 3 tháng sau mới tiêm được thì sao?
 
Upvote 0
Nếu là tôi tôi sẽ bố trí dữ liệu có kế hoạch tiêm chủng như thế này.(file đính kèm)
sau đó sẽ lọc trẻ em đén kế hoạch tiêm chủng hàng tháng ngày 9 và 17đưa vào sheet DK_TIEM
khỏe re.
tạm thời chưa nói đến form

Hiện tại là tháng 6/2016;
Vậy Thương thử lập danh sách
(1) Những em nào chưa đi tiêm trong tháng (để nhắc nhỡ chẳng hạn)
(2) Danh sách cần tiêm chủng trong tháng sau (để trù liệu số thuốc chẳng hạn)

Sẵn đây xin gởi file hoàn chỉnh hơn nè:

(& mình sẽ tháo bớt các file bài trước, thu hồi tài nguyên)
 

File đính kèm

Upvote 0
hiện tại là tháng 6/2016;
vậy thương thử lập danh sách
(1) những em nào chưa đi tiêm trong tháng (để nhắc nhỡ chẳng hạn)
(2) danh sách cần tiêm chủng trong tháng sau (để trù liệu số thuốc chẳng hạn)

sẵn đây xin gởi file hoàn chỉnh hơn nè:

(& mình sẽ tháo bớt các file bài trước, thu hồi tài nguyên)
chuyện này không khó
bác xem file nhé. Về cơ bản là vậy
 

File đính kèm

Upvote 0
nhờ BQT xóa giúp bài này vì tôi đã hết dung lượng tải lên
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
nhờ BQT xóa bài này vì tôi hết dung lượng tải lên
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
mình TẠO FORM nhạp liệu tìm kiếm và copi được một số code. nhờ các anh chị chỉnh sữa giúp cho hoàn thiện. lối ở đoạn nếu mình tìm kiếm và sữa thông tin trên form thì nó không lưu vào nơi mình cần sữa.Xin chân thành cảm ơn!

:cc_confused::cc_confused::.,sao không có ai giúp em với nhỉ?
 
Upvote 0
Nhờ các bác giúp đở
code VBA coppy dữ liệu từng đoạn văn trong word vào từng ô trong excell.
Ví dụ mình có file như sau
 

File đính kèm

Upvote 0
cần giúp đỡ. mình không phải dân kế toán và cũng không chuyên về exl. mình có một bản exl cần hiển thị kết quả sang một sheet khác ( tự động nhập kết quả sang sheet khác) bác nào rảnh giúp được inbox theo zalo 0982975992. mình gửi công. thanks
 
Upvote 0
Mình muốn tìm hiểu VBA trong Excel, a.c.e nào có giáo trình hay bỏa bối gì hay cho mình xin với ạ
 
Upvote 0
Xin các sư phụ chỉ giáo ạ.

Thay vì dùng các hàm trong excel, Em muốn làm báo cáo dùng code VBA để hiện giá trị. File mẫu em có đình kèm, mong các sư phụ giúp em ạ.

Em cảm ơn.
 

File đính kèm

Upvote 0

Bài viết mới nhất

Back
Top Bottom