Câu hỏi Đường cú pháp VBA


Tôi sử dụng VBA trong công việc của tôi mỗi ngày, nhưng tôi không biết về đường Cú pháp. Tôi chỉ biết tháng trước khi tôi thấy trang MSDN Range. Tôi đã cố gắng tìm một bài viết với các tính năng này, nhưng tôi không tìm thấy bất kỳ tính năng nào.

Có ai biết nếu VBA có nhiều cú pháp hơn đường này

Phạm vi:Range("A4:C100") đến [A4:C100]

hoặc là

Phạm vi: Range("MY_DATE") đến [MY_DATE]


4
2018-01-28 11:56


gốc


Bạn có thể thấy điều này là đáng đọc: stackoverflow.com/questions/1070863/hidden-features-of-vba - Pillgram


Các câu trả lời:


Đối với phạm vi

Tất cả đều làm điều tương tự:

Range(Cells(1, 2), Cells(2, 2)).Select

Range("B1:B2").Select

Dim rngB As Range
Set rngB = Range("B1:B2")
rngB.Select

[B1:B2].Select


Đối với chuỗi

Bạn không có nhiều tùy chọn

Dim strA As String
strA = "hello"

strA = strA + "world" và strA = strA & "world" làm điều tương tự (dấu và được ưu tiên)

strA &= "world" và strA += "world"  không làm việc.


Đối với trang tính

Bạn thường có thể làm việc với bảng mặc định thực tế với số, thay vì trang tính được đặt tên:

Worksheets("Name").Activate
Sheets("Name").Activate
'Worksheet "Name" is Sheet1 object
Sheet1.Activate

Đối với công thức / chức năng bảng tính

Từ câu trả lời của Excellll cho đầy đủ:

Một cú pháp cú pháp khác là để truy cập và đánh giá bảng tính   chức năng. Bạn có thể sử dụng dấu ngoặc vuông để đánh giá một công thức như thể nó đã được bật   bảng tính thay vì xâu chuỗi với nhau một VBA cồng kềnh   tuyên bố.

Sub sugartest()
'long version
MsgBox Application.WorksheetFunction.Average(ActiveSheet.Range("A1:D1"))
'short version
MsgBox [AVERAGE(A1:D1)]
End Sub

6
2018-01-28 13:55



Cảm ơn. Đối với chuỗi nối, tôi sử dụng StringFormat () của tôi hoạt động giống như kiểu C #. github.com/makah/ExcelHelper/blob/master/Helper.bas - Sub ý kiến ​​trong tiếng Bồ Đào Nha :-( - Makah
Một cái gì đó cho Sheets ()? - Makah
Tờ @ Makah có thể được gọi là trang tính theo mặc định (Trang tính) chứ không phải tiêu đề, nếu bạn tham chiếu đến đối tượng. Xem chỉnh sửa của tôi. - Raystafarian
Bạn cũng có thể gán một phạm vi cho một biến mảng và ngược lại. - andy holaday


Một cú pháp cú pháp khác là để truy cập và đánh giá các hàm bảng tính. Bạn có thể sử dụng dấu ngoặc vuông để đánh giá một công thức như thể nó nằm trên trang tính thay vì xâu chuỗi lại với nhau một câu lệnh VBA cồng kềnh.

Sub sugartest()
'long version
MsgBox Application.WorksheetFunction.Average(ActiveSheet.Range("A1:D1"))
'short version
MsgBox [AVERAGE(A1:D1)]
End Sub

6
2018-01-28 21:41



Tôi không biết điều này và nó thật tuyệt vời - Raystafarian
Uuuh, điều này thật tuyệt! - nixda