Questão Açúcar Sintático VBA


Eu uso o VBA no meu trabalho todos os dias, mas eu não sabia sobre o açúcar sintático do Range. Eu sabia no mês passado quando vi a página do MSDN Range. Tentei encontrar um artigo com esses recursos, mas não encontrei nenhum.

Alguém sabe se o VBA tem mais açúcar sintático do que isso?

Alcance:Range("A4:C100") para [A4:C100]

ou

Alcance: Range("MY_DATE") para [MY_DATE]


4


origem


Você pode achar que isso vale a pena ler: stackoverflow.com/questions/1070863/hidden-features-of-vba - Pillgram


Respostas:


Para intervalos

Todos estes fazem a mesma coisa:

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


Para cordas

Você não tem muitas opções

Dim strA As String
strA = "hello"

strA = strA + "world" e strA = strA & "world" faça a mesma coisa (e comercial é preferido)

strA &= "world" e strA += "world"  não funciona.


Para planilhas

Geralmente, você pode trabalhar com a planilha padrão real com número, em vez de com o nome da planilha:

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

Para fórmulas / funções da planilha

Da resposta de Excellll para completar:

Outro atalho sintático é para acessar e avaliar a planilha   funções. Você pode usar colchetes para avaliar uma fórmula como se estivesse em   a planilha, em vez de amarrar juntos um VBA pesado   declaração.

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

6



Obrigado. Para concatenação de string eu uso o meu StringFormat () que funciona como o estilo C #. github.com/makah/ExcelHelper/blob/master/Helper.bas - Sub comentários em português :-( - Makah
Algo para folhas ()? - Makah
Folhas @Makah podem ser referidas como a folha que são por padrão (Folha #) ao invés de título, se você se referir ao objeto. Veja minha edição. - Raystafarian
Você também pode atribuir um intervalo a uma variável de matriz e vice-versa. - andy holaday


Outro atalho sintático é para acessar e avaliar as funções da planilha. Você pode usar colchetes para avaliar uma fórmula como se ela estivesse na planilha em vez de vincular uma instrução VBA incômoda.

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

6



Eu não sabia disso e é INCRÍVEL +1 - Raystafarian
Uuuh, isso é legal! - nixda