/ / Erstellen von Variablen innerhalb einer Schleife - Excel, vba, Schleifen, Variablen, excel-vba

Erstellen von Variablen innerhalb einer Schleife - Excel, vba, Schleifen, Variablen, excel-vba

Ich arbeite in VBA und wollte wissen, ob es so warEs ist möglich, Variablen innerhalb einer while-Schleife zu erstellen und zu benennen. Mein Ziel ist es, eine bestimmte Spalte im Arbeitsblatt durchzusehen und Variablen zu erstellen, deren Werte der Text in den Zellen dieser Spalte sind.

Idealerweise würden die Variablennamen und ihre Werte wie folgt aussehen:

party1 = "Owner"
party2 = "Contractor"
party3 = "Subcontractor"

Und so weiter und so weiter, basierend auf einer Reihe von Parteien.

Bisher habe ich:

Dim i As Integer, j As Integer
i = 2
j = 1
Do While Cells(i, 7).Value <> ""
Dim partyName As String
" Pulls the text from the worksheet cell
partyName = Cells(i, 7).Text
Dim curNum As String
curNum = CStr(j)
Dim tempParty As String
tempParty = "party" & curNum
i = i + 1
j = j + 1
Loop

Ich denke, das kommt auf die Frage an: Wie bekomme ich dann PartyX als Variablennamen und Variablenwert als String, der in partyName gespeichert wird?

Dies Es scheint so, als ob es in der Richtung dessen ist, was ich binSuchen, aber es beantwortet meine Frage nicht ganz. Außerdem erkenne ich, dass es Probleme mit dem Umfang dieser Variablen gibt, aber ich kann mir keine andere Möglichkeit vorstellen, dies zu tun.

Antworten:

1 für die Antwort № 1

WENN Sie einen NAME in eine NUMMER umwandeln müssen Select Case:

Dim CurRow As Long, LastRow As Long
LastRow = Cells(Rows.Count, 7).End(xlUp).Row

For CurRow = 1 to LastRow
partyName = Cells(i, 7).Value
Select Case partyName
Case "Owner"
partyNum = 1
Case "Contractor"
partyNum = 2
Case "Subcontractor"
partyNum = 3
Case Else
End Select
"Do something with partyNum here
Next CurRow

Wenn Sie eine NUMMER in einen NAME umwandeln möchten, verwenden Sie Select Case:

Dim CurRow As Long, LastRow As Long
LastRow = Cells(Rows.Count, 7).End(xlUp).Row

For CurRow = 1 to LastRow
partyNum = Cells(i, 7).Value
Select Case partyNum
Case 1
partyName = "Owner"
Case 2
partyName = "Contractor"
Case 3
partyName = "Subcontractor"
Case Else
End Select
"Do something with partyName here
Next CurRow