これを見てみましたが、私はまだVBAを初めて使っていて、かなり混乱しています。 1つのサブ変数から変数を取得し、別のサブ変数で使用する方法を理解できません。Module内のsubから変数を取ってExcel VBAを使ったUserFormの別のSubで使用する方法
変数ListBox1Items
をGetListBox1Items
から、cbSave_Click
に使用したいとします。 Set oNewRow = Selection.ListObject.ListRows.Add(1)
にエラーが表示され続けます。私はDim ListBox1Items As String
とPublic ListBox1Items As String
を試しましたが、それは役に立ちません。
サブモジュールのモジュールの位置はありますか? GetListBox1Items
はモジュール内にあります。 cbSave_Click
はユーザーフォームにあります。
タイプを使用して検索しましたが、混乱します。
Private Sub cbSave_Click()
Dim oNewRow As ListRow
Dim rng As Range
Set rng = ThisWorkbook.Worksheets("Creatures").Range("MonsterList")
Set oNewRow = Selection.ListObject.ListRows.Add(1)
With ws
Call GetListBox1
oNewRow.Range.Cells(1, 24).Value = Me.StatBox1.Value
oNewRow.Range.Cells(1, 35).Value = ListBox1Items
End With
End Sub
とGetListBox1が続く抽象例取る
Sub GetListBox1()
Dim SelectedItems As String
Dim ListBox1Items As String
With MonsterMaker
For i = 0 To .ListBox1.ListCount - 1
If .ListBox1.Selected(i) = True Then
SelectedItems = SelectedItems & .ListBox1.List(i) & ", "
End If
Next i
ListBox1Items = Left(SelectedItems, Len(SelectedItems) - 2)
End With
End Sub
グローバル変数にする必要があります。いくつかのポインタhttps://stackoverflow.com/questions/2722146/how-do-i-declare-a-global-variable-in-vba – QHarr
GetListBox1をListBox1Itemsの値を返す関数にすることができます – mooseman
グローバル変数を設定しようとしましたユーザーフォームとモジュールで、しかし 'Set oNewRow = Selection.ListObject.ListRows.Add(1)'でまだエラーが発生しています。 – bigbucky