VBA를 처음 사용하고 다음 선언 및 할당을 한 줄로 변환 할 수 있는지 알고 싶습니다.
Dim clientToTest As String
clientToTest = clientsToTest(i)
또는
Dim clientString As Variant
clientString = Split(clientToTest)
VBA를 처음 사용하고 다음 선언 및 할당을 한 줄로 변환 할 수 있는지 알고 싶습니다.
Dim clientToTest As String
clientToTest = clientsToTest(i)
또는
Dim clientString As Variant
clientString = Split(clientToTest)
답변:
불행히도 VBA에는 줄임말이 없습니다 :
. 가독성을 높이기 위해 연속 문자를 원하는 경우 연속 문자를 사용하는 것이 가장 시각적입니다 .
Dim clientToTest As String: clientToTest = clientsToTest(i)
Dim clientString As Variant: clientString = Split(clientToTest)
힌트 (기타 답변 / 설명 요약) : 개체와도 작동 (Excel 2010) :
Dim ws As Worksheet: Set ws = ActiveWorkbook.Worksheets("Sheet1")
Dim ws2 As New Worksheet: ws2.Name = "test"
다음과 같이 객체를 사용하여 정렬 할 수 있습니다.
Dim w As New Widget
그러나 문자열이나 변형이 아닙니다.
:
. 같은 줄에 여러 값을 선언 할 수 없으므로 몇 가지 제한 사항이 있습니다 (예 :) var1 = val1: var2 = val2
. 그것은 산발적으로 버그를 발생시키고 때로는이 유형의 과제를 수행 할 수 있지만 전체적으로이 표기법에서 제안하지는 않습니다.
Dim x As New T
구문은 객체에서만 작동합니다.
dim str as String: str = "value"
그리고 dim str as Worksheet: set str = ActiveWorkbook.worksheets("Sheet1")
반복적으로 모두 작동합니다. 비록 내가 개체 인스턴스화를 수행하면 dim ws as New Worksheet: set ws = ActiveWorkbook.Worksheets("Sheet1")
VBA의 다른 잘못된 작업처럼 오류가 발생합니다.
New
키워드는하지 않습니다. 그것이 내가 말하는 전부입니다.
실제로는 가능하지만 그렇게 할 수는 없습니다.
Sub MySub( Optional Byval Counter as Long=1 , Optional Byval Events as Boolean= True)
'code...
End Sub
하위를 호출 할 때 변수를 다르게 설정하거나 기본값으로 설정할 수 있습니다.
경우에 따라 With
statement 를 사용하면 변수를 선언 할 필요가 없습니다 .
예를 들어
Dim fd As Office.FileDialog
Set fd = Application.FileDialog(msoFileDialogSaveAs)
If fd.Show Then
'use fd.SelectedItems(1)
End If
이것은 다음과 같이 다시 쓸 수 있습니다
With Application.FileDialog(msoFileDialogSaveAs)
If .Show Then
'use .SelectedItems(1)
End If
End With