VBAを使用して1つのブックから別のブックに列をコピーするために、関数(CommandButton2_Click
)にグローバル変数(cmb
)を使用します。 これは私のコードです:変数「コンパイルエラー:ステートメントが型ブロック外で無効です」
Dim wb As Workbook
Dim cmb As String
Private Sub ComboBox1_Change()
Cell As Range, rng As Range, sht As Worksheet
Set cmb = Form.ComboBox1.Value
Set sht = wb.Worksheets(cmb)
'assuming your headers are always on the first row...
Set rng = sht.Range(sht.Range("A1"), _
sht.Cells(1, Columns.Count).End(xlToLeft))
'add some code here to clear the lists first!...
For Each Cell In rng.Cells
If Len(Cell.Value) > 0 Then
Form.ComboBox2.AddItem (Cell.Value)
Form.ComboBox3.AddItem (Cell.Value)
Form.ComboBox4.AddItem (Cell.Value)
Form.ComboBox5.AddItem (Cell.Value)
Form.ComboBox6.AddItem (Cell.Value)
Form.ComboBox7.AddItem (Cell.Value)
Form.ComboBox8.AddItem (Cell.Value)
Form.ComboBox9.AddItem (Cell.Value)
Form.ComboBox10.AddItem (Cell.Value)
Form.ComboBox11.AddItem (Cell.Value)
Form.ComboBox12.AddItem (Cell.Value)
Form.ComboBox13.AddItem (Cell.Value)
End If
Next Cell
End Sub
Private Sub CommandButton1_Click()
Dim sFilePath As String
sFilePath = Application.GetOpenFilename()
Set wb = Workbooks.Open(sFilePath)
For Each sht In wb.Worksheets
Form.ComboBox1.AddItem sht.Name
Next sht
End Sub
Private Sub CommandButton2_Click()
'Copy Column from one workbook to another
Dim sourceColumn As Range, targetColumn As Range
Set sourceColumn = wb.Worksheets(cmb).Columns(Form.ComboBox2.Value)
Set targetColumn = ActiveWorkbook.ActiveSheet.Columns("PART NUMBER")
sourceColumn.Copy Destination:=targetColumn
End Sub
私はPrivate Sub ComboBox1_Change()
でCompile Error: Statement invalid outside Type Block
エラーを取得しています。私はなぜ思ったのだろう。変数cmb
をグローバルとして宣言しました。変数が有効範囲にないのはなぜですか?
あなたはWB '設定し、WB = Workbooks.Open(sFilePath)'あなたはまたない – danieltakeshi
'set'を設定されていません文字列変数 'Set cmb = ..'は' cmb = ... 'のみでなければなりません –
そして' Cell As Range、rng As Range、sht As Worksheet'にキーワード 'Dim'がありません –