0

コマンドボタンの「予測」が選択されると、データの範囲を選択し、タブストリップのインデックスに応じてデータ範囲を特定のワークシートにコピーできるユーザーフォームをEXCEL/VBAで作成しようとしています。

これは、タブストリップの変更についてこれまでのところ私が持っているものです:

Private Sub tbsMethod_Change()
Dim tabIndex As Integer
tabIndex = tbsMethod.SelectedItem.Index
Select Case tabIndex
Case 0
Label2.Visible = True
RefEdit1.Visible = True
Label_a.Visible = False
Label_b.Visible = False
Label_g.Visible = False
TextBox_a.Visible = False
TextBox_b.Visible = False
TextBox_g.Visible = False
Case 1
Label2.Visible = True
....

ここに問題があると思います (commandbutton_click):

Sub ForecastButton_Click()
Dim tabIndex As Integer
Dim ws As Worksheet
tabIndex = tbsMethod.SelectedItem.Index
With ThisWorkbook
Select Case tabIndex
'copies to worksheet or "module"
Case 0
Application.GoTo ActiveWorkbook.Sheets("Sheet1").Range("B7")
Range(RefEdit1.Value).Copy Destination:=Sheet1.Range("B7:B26")
Case 1
Range(RefEdit1.Value).Copy Destination:=Sheet3.Range("B7:B26")
Application.GoTo ActiveWorkbook.Sheets("Sheet3").Range("B7")
Case 2
Application.GoTo ActiveWorkbook.Sheets("Sheet4").Range("B7")
.Cells(29, 2).Value = Me.TextBox_a.Value
Range(RefEdit1.Value).Copy Destination:=Sheet4.Range("B7:B26")
Case 3
Application.GoTo ActiveWorkbook.Sheets("Sheet5").Range("B7")
.Cells(29, 2).Value = Me.TextBox_a.Value
.Cells(30, 2).Value = Me.TextBox_b.Value
Range(RefEdit1.Value).Copy Destination:=Sheet5.Range("B7:B26")

Case 4
Application.GoTo ActiveWorkbook.Sheets("Sheet6").Range("B7")
.Cells(29, 2).Value = Me.TextBox_a.Value
.Cells(30, 2).Value = Me.TextBox_b.Value
.Cells(31, 2).Value = Me.TextBox_g.Value
Range(RefEdit1.Value).Copy Destination:=Sheet6.Range("B7:B26")

End Select
Unload dfMod
End With

Me.R.Value = ""
Private Sub cmdClose_Click()
    Unload dfMod
End Sub

「エラー 9 下付き文字が範囲外です」というエラー メッセージが表示されました。現在、「メソッドまたはデータ メンバーが見つかりません」と表示されています。VBA/EXCEL はかなり新しいので、どんな助けでも大歓迎です

ありがとう、ライアン

4

1 に答える 1

1

あなたはあなたのコードに持っています

With thisworkbook
    ...
    .cells(...

cellsはオブジェクトのプロパティまたはメソッドではないためworkbook、エラーが返されます

于 2013-03-21T08:49:25.933 に答える