2016-07-18 3 views
2

ポートのペア間の距離を示すテーブル(PortDistances)があります。私は総計行を表示しないように設定しています。なぜなら、単純にその中のデータには関係がないからです。合計行を有効にせずにVBAを使用してExcelテーブルに行を追加する

私もこのコードを使用して、テーブルの最後にデータの行を追加するユーザーフォームを持っている:

うるさく
Private Sub AddOne_OK_Click() 
Dim lrow As Long 
lrow = Worksheets("Port distances").Cells(Rows.Count, 1).End(xlUp).Row 
' Add new port pair distance 
Worksheets("Port distances").Cells(lrow + 1, 1).Formula = "=" & Worksheets("Port distances").Cells(lrow + 1, 2).Address(False, False) & "&" & Worksheets("Port distances").Cells(lrow + 1, 3).Address(False, False) ' Extend formulas 
Worksheets("Port distances").Cells(lrow + 1, 6).Formula = "=" & Worksheets("Port distances").Cells(lrow + 1, 1).Address(False, False) & "&" & Worksheets("Port distances").Cells(lrow + 1, 4).Address(False, False) ' Extend formulas 
Worksheets("Port distances").Cells(lrow + 1, 2).Value = strFrom ' POL 
Worksheets("Port distances").Cells(lrow + 1, 3).Value = strTo ' POD 
Worksheets("Port distances").Cells(lrow + 1, 4).Value = Val(Box_DistNew.Value) ' Distance 
Worksheets("Port distances").Cells(lrow + 1, 5).Value = "Schedule App" ' Source 

Unload Me 
End Sub 

、私はそれを実行するたびに、追加した行は、通常、合計行になり既存の合計行数式を上書きするかどうか尋ねられます(で始まることを念頭に置いてください)。

私はWorksheets("Port distances").ListObjects("PortDistances").ShowTotals = Falseを追加して通常の行に戻してみましたが、その行だけを消去しています。一方、「行の合計」チェックボックスを手動でクリアすると、通常の行に変わります。

なぜそれが合計行として使用され、どのように停止するのですか?

+2

「ワークシート(「ポート距離」)を使用しないのはなぜですか?新しい行を追加するにはListrows.addを使用します。 – Rory

+0

これはあまりにも輝かしいので、私に起こった。 (まあ、私はそれが可能であるかどうかはわかりませんでした)完璧 - ありがとう! –

+0

それを答えとして追加したいのであれば、私は先に進んでそれを受け入れます。 –

答えて

2

Worksheets("Port distances").ListObjects("PortDistances").Listrows.addを使用して、新しい行を追加してから入力することができます。例:

Dim lo     As ListObject 
Dim lr     As ListRow 
Dim n      As Long 

Set lo = Worksheets("Port distances").ListObjects("PortDistances") 
Set lr = lo.ListRows.Add 
For n = 1 To lo.ListColumns.Count 
    lr.Range(1, n).Value = "item " & n 
Next n 
関連する問題