Hỏi đáp các câu lệnh VBA đơn giản (6 người xem)

Liên hệ QC

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

hoangexcell

Thành viên tiêu biểu
Tham gia
8/1/08
Bài viết
459
Được thích
132
Donate (Momo)
Donate
Giới tính
Nam
Chào cả nhà,

Mình thuộc đối tượng biết VBA một số thứ căn bản. Đôi khi muốn viết 1 lệnh cơ bản nào đó mà không biết tìm lệnh từ đâu.
Do vậy, topic này là để hỏi theo kiểu - bí gì chỉ đó. Ai biết thì giúp dùm nha :)

Ví dụ:


1. Muốn khi nhập liệu vào 1 ô nào đó của sheet, thì chạy macro. Muốn gọi Macro khi 1 ô thay đổi giá trị nha cả nhà.
Mình không biết viết lệnh sao cả


Ad xem chủ đề này có rồi thì giúp nha, hoặc duy trì chủ đề này cho tiện giúp đỡ đối tượng trên :)
 
Lần chỉnh sửa cuối:
Chào cả nhà,

Đây là 1 topic Định hướng cho các bạn nào thắc mắc 1 việc nào đó thì tương ứng cú pháp Code sẽ viết ra sao.
Đối tượng: biết VBA chút chút, mà chưa có điều kiện học bài bản. Cần gấp để giải quyết 1 vấn đề gấp.

Ví dụ:


1. Muốn khi nhập liệu vào 1 ô nào đó của sheet, thì chạy macro. Muốn gọi Macro khi 1 ô thay đổi giá trị nha cả nhà.
Mình không biết viết lệnh sao cả


Ad xem chủ đề này có rồi thì giúp nha, hoặc duy trì chủ đề này cho tiện giúp đỡ đối tượng trên :)
Câu lệnh để chạy một macro có thể rất đơn giản. Chỉ cần Call Macro
Nhưng thực hiện theo ví dụ trên thì không đơn giản.

Điều kiện của bạn là "gọi Macro khi 1 ô thay đổi giá trị". Trong ngữ cảnh câu này, từ "khi" hàm chứa 1 điều kiện, và cụm từ "thay đổi" gợi ý rằng điều kiện kia có thể liên quan đến một sự kiện.
Nói túm lại, đòi hỏi của bạn liên quan đến một chút kiến thức về sự kiện và code bắt sự kiện. Cái "Đối tượng: biết VBA chút chút, mà chưa có điều kiện học bài bản" của bạn đã qua bước này chưa?
 
Chào cả nhà,

Đây là 1 topic Định hướng cho các bạn nào thắc mắc 1 việc nào đó thì tương ứng cú pháp Code sẽ viết ra sao.
Đối tượng: biết VBA chút chút, mà chưa có điều kiện học bài bản. Cần gấp để giải quyết 1 vấn đề gấp.

Ví dụ:


1. Muốn khi nhập liệu vào 1 ô nào đó của sheet, thì chạy macro. Muốn gọi Macro khi 1 ô thay đổi giá trị nha cả nhà.
Mình không biết viết lệnh sao cả


Ad xem chủ đề này có rồi thì giúp nha, hoặc duy trì chủ đề này cho tiện giúp đỡ đối tượng trên :)
Bạn tìm hiểu code bắt sự kiện (Event) trong Worksheet.
Tham khảo: Ý nghĩa và cách dùng các sự kiện trong VBA
 
Bạn tìm hiểu code bắt sự kiện (Event) trong Worksheet.
Tham khảo: Ý nghĩa và cách dùng các sự kiện trong VBA
Khi ô a2 thay đổi thì lệnh thế nào ấy!!??
Bài đã được tự động gộp:

Câu lệnh để chạy một macro có thể rất đơn giản. Chỉ cần Call Macro
Nhưng thực hiện theo ví dụ trên thì không đơn giản.

Điều kiện của bạn là "gọi Macro khi 1 ô thay đổi giá trị". Trong ngữ cảnh câu này, từ "khi" hàm chứa 1 điều kiện, và cụm từ "thay đổi" gợi ý rằng điều kiện kia có thể liên quan đến một sự kiện.
Nói túm lại, đòi hỏi của bạn liên quan đến một chút kiến thức về sự kiện và code bắt sự kiện. Cái "Đối tượng: biết VBA chút chút, mà chưa có điều kiện học bài bản" của bạn đã qua bước này chưa?
Câu hỏi rất cụ thể rồi. Khi 1 ô (một) thay đổi giá trị thì chạy macro A.

Chỉ vậy thôi mà :)
 
Khi ô a2 thay đổi thì lệnh thế nào ấy!!??
Bài đã được tự động gộp:


Câu hỏi rất cụ thể rồi. Khi 1 ô (một) thay đổi giá trị thì chạy macro A.

Chỉ vậy thôi mà :)
Đặt code như sau:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$2" Then
    MsgBox "Làm gì thì làm"
End If
End Sub
 
Đặt code như sau:
Mã:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address = "$A$2" Then
    MsgBox "Làm gì thì làm"
End If
End Sub
Cảm ơn nhiều. Ý tưởng chỉ có thế. Gọi là trợ giúp chữa cháy thôi.


Thêm 1 lệnh nữa. Ví dụ: cần chọn range nhưng mà theo kiểu RC thì lệnh sao.
Vì cột thay đổi mà theo a b c thì ko biết chọn
 
Thêm 1 lệnh nữa. Ví dụ: cần chọn range nhưng mà theo kiểu RC thì lệnh sao.
Vì cột thay đổi mà theo a b c thì ko biết chọn
Đối tượng "biết VBA chút chút, mà chưa có điều kiện học bài bản" nhưng hỏi rất bài bản!
Bài viết này tôi sẽ chuyển qua box Thành viên giúp nhau, hi vọng có người trả lời bạn tốt hơn.
 
Cảm ơn nhiều. Ý tưởng chỉ có thế. Gọi là trợ giúp chữa cháy thôi.

Thêm 1 lệnh nữa. Ví dụ: cần chọn range nhưng mà theo kiểu RC thì lệnh sao.
Vì cột thay đổi mà theo a b c thì ko biết chọn
Đã nói là không đơn giản. Đâu phải cứ thấy cháy là tạt nước. Bình chữa cháy cũng có loại không thể dùng cho cháy điện.
Học căn bản thì chịu khó tìm về các ý tưởng căn bản.

kiểu RC:
Set range : Range(Cells(i1, j1), Cells(i2, j2))
Đại chỉ: rg.Address(ReferenceStyle:=xlR1C1)

LƯU Ý:
Bạn muốn hỏi gì thì hỏi, bạn có cho đó là căn bản hay không cũng là việc riêng của bạn. Tôi không cần biết.
Chỉ là ở đây, trong bài #1, bạn có nói tới "Định hướng cho các bạn nào thắc mắc 1 việc nào đó...".
Vì cụm từ "định hướng" kia liên quan đến người khác, không còn là của riêng cho nên tôi mới xác định cái nào đơn giản và không đơn giản cho các bạn khác khỏi hiểu lầm.
 
Lần chỉnh sửa cuối:
Thấy chủ thớt muốn hỏi bài của mình là chính, thêm mưu "lôi kéo, định hướng.." các kiểu để gây chú ý.
Cái chủ thớt đang nghĩ là cần, thắc mắc thì có sẵn hết rồi, chẳng qua không chịu tìm cho ra. Bằng chứng là bài #8, vậy gắn thớt này qua thớt kia là xong rồi. :))

1571985359330.png
 
Thấy chủ thớt muốn hỏi bài của mình là chính, thêm mưu "lôi kéo, định hướng.." các kiểu để gây chú ý.
Cái chủ thớt đang nghĩ là cần, thắc mắc thì có sẵn hết rồi, chẳng qua không chịu tìm cho ra. Bằng chứng là bài #8, vậy gắn thớt này qua thớt kia là xong rồi. :))

View attachment 227162
hông có âm mưu gì đâu. Chỉ nghĩ là có thể có nhu cầu này đấy. Một số ai đó (thường là người ít viết code, hoặc biết chút ít, thiếu căn bản..) có thể sẽ bí 1 câu lệnh nào đó. Thì có thể hỏi.

Tất nhiên, tìm chưa ra đâu đó mới post hỏi.
Bài đã được tự động gộp:

Câu 3: Chọn vùng không liên tục:
Khi record thì ra mã này:

Range("A1:A5,C1:C5").Select

nhưng mình không biết chuyển thành dạng động thì cú pháp làm sao.

Muốn C1:C5 sẽ thay đổi thành D, E, F....
 
Lần chỉnh sửa cuối:
hông có âm mưu gì đâu. Chỉ nghĩ là có thể có nhu cầu này đấy. Một số ai đó (thường là người ít viết code, hoặc biết chút ít, thiếu căn bản..) có thể sẽ bí 1 câu lệnh nào đó. Thì có thể hỏi.

Tất nhiên, tìm chưa ra đâu đó mới post hỏi.
Thay vì cho là "có thể người khác cũng cần vậy nên mình hỏi luôn giùm";
bạn tin rằng "có thể người khác cũng cần vậy nên người khác đã hỏi trước rồi" thì bạn đã chịu khó tìm và thấy những giải đáp rồi.
 
Thay vì cho là "có thể người khác cũng cần vậy nên mình hỏi luôn giùm";
bạn tin rằng "có thể người khác cũng cần vậy nên người khác đã hỏi trước rồi" thì bạn đã chịu khó tìm và thấy những giải đáp rồi.
Tìm ra được thì dĩ nhiên không phải hỏi làm gì. Mà bây giờ không hỏi thì không biết khi nào tìm ra giải pháp :)

Cho nên, mới có diễn đàn để hỏi tới hỏi lui nếu trùng thì link tới thôi :)
 
 
Web KT

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

Back
Top Bottom