私はVBAに新しく、次のコードスニペットで奇妙な問題が発生しました。私の目標は、ユーザーが手動でテーブルにデータを貼り付けるときに行を挿入することです。ユーザはテーブルの一部を手作業でコピーします(列A1からC25まで - 列のDとEはそのままです)。A26に手動で貼り付けると、行が挿入されます。このように、テーブルの下にはより多くのコンテンツが存在するため、テーブルはデータを適切に収めるために展開されます。複数の列に貼り付けるのを防ぐにはどうすればよいですか?
以下のコードは、sortaの作業をしていますが、唯一の問題は、列(AからC)の貼り付けられたデータがすべての列(DからF、GからIなど..)私は(と「永遠に」の継続から)挿入された行の上に私の他の列を上書きからこの貼り付けられたデータを防ぐにはどうすればよい
' When cells are pasted, insert # of rows to paste in
Dim lastAction As String
' If a Paste action was the last event in the Undo list
lastAction = Application.CommandBars("Standard").Controls("&Undo").List(1)
If Left(lastAction, 5) = "Paste" Then
' Get the amount that was pasted (table didn't expand)
numOfRows = Selection.Rows.Count
' Undo the paste, but keep what is in the clipboard
Application.Undo
' Insert a row
ActiveCell.offset(0).EntireRow.Insert
End If
私は、コマンドバーの[元に戻す]コントロールを使用していた理由は、このためであります手動の貼り付けイベントでコードを実行する必要があります。
これはExcelで定義された 'テーブル 'ですか?または単にデータのテーブルですか? –
これは単なるデータテーブルです。データが入っているセルには何もありません。 –
私は解決策に取り組んでいます - これはワークシート変更イベントですか? –