2017-06-12 9 views
0

ユーザーフォームの(テキスト)内容を既存の(名前付き)ダイナミック範囲 "MasterTable"に追加するコマンドボタン用のコードを作成しました:Excel VBAコマンドボタンコードがオブジェクト変数を認識しません

Private Sub AddDev_Click() 

    Application.CutCopyMode = False 

    With Worksheets("Table").Range("MasterTable").ListObject.ListRows.Add 
     .Offset(1, 0).Value = NewDevRecord.NewCorp.Value 
     .Offset(1, 1).Value = NewDevRecord.NewAddr.Value 
     .Offset(1, 1).Value = NewDevRecord.NewFac.Value 
    End With 

End Sub 

forを入力してボタンをクリックすると、Error 91- Object Variable or With Block Variable Not Setがスローされ、違反者としてハイライトWorksheets("Table").Range("MasterTable")がスローされます。範囲を参照する有効な方法ではありませんか?それは私のVBAの本とシートモジュールで動作します - UserFormコンポーネントにアクセスできませんか?私は間違って何をしていますか?

+0

私は名前付き範囲を呼び出すときに、あなただけできると信じて'With Range(" MasterTable ")を使用してください。 – BruceWayne

答えて

0

ListObjectは、あなたのようにそれを参照してくださいと同じようにMasterTableが作成されている場合:だから、このコードは動作します

Worksheets("Table").ListObjects("MasterTable") 

Private Sub AddDev_Click() 

    Application.CutCopyMode = False 

    With Worksheets("Table").ListObjects("MasterTable").ListRows.Add 
     .Offset(1, 0).Value = NewDevRecord.NewCorp.Value 
     .Offset(1, 1).Value = NewDevRecord.NewAddr.Value 
     .Offset(1, 1).Value = NewDevRecord.NewFac.Value 
    End With 

End Sub 
関連する問題