2017-06-06 20 views
0

このセクションでは、ユーザーフォームからの新しいデータ入力行を追加するためにテーブルのサイズを変更することを意図しています。私は、コードを実行すると、現在、私が取得:テーブル範囲のサイズ変更

エラー9 - 行でインデックスが有効範囲にありません

Set tbl1 = sht1.ListObjects("LogTable") 

これは完全なコードです:

Private Sub CommandButton1_Click() 

'Start button 
'Log start time as the time the button is clicked 

Dim EmptyRow, LastRow As Long 
Dim sPath    As String 
Dim tbl1, tbl2   As Range 

'Find next empty row based on first column 
Set wb = ThisWorkbook 
Set sht1 = wb.Sheets("Log") 
Set tbl1 = sht1.ListObjects("LogTable") 

LastRow = sht1.Cells(sht1.Rows.Count, "A").End(xlUp).Row 
EmptyRow = LastRow + 1 

tbl1.Resize Range("A2:E" & EmptyRow) 

sht1.Cells(EmptyRow, 1).Value = Now 

ご協力いただきありがとうございます。

+1

その名前のテーブルはありません。しかし、テーブルは自動的にリサイズされます。 – SJR

答えて

0

は、このコードを試してみてください。

Dim tbl1 As ListObject 
Dim wb As Workbook 
Dim sht1 As Worksheet 

    Set wb = ThisWorkbook 
    Set sht1 = wb.Sheets("Log") 
    Set tbl1 = sht1.ListObjects("LogTable") 

    tbl1.ListRows.Add 

ご注意:

をあなたのコードが間違っ宣言が含まれていますEmptyRowとTBL1は、あなたが意図したものではありませんバリアント、(それはそう)としてdesclaredされています。タイプの宣言が行のすべての変数に適用されると仮定すると、一般的なVBAの間違いです。そうではありません。それを避ける最も簡単な方法は、常に1行に1つの変数を宣言することです。

また、tbl1とtbl2は、範囲ではなくテーブル(ListObject)として宣言する必要があります。

関連する問題