大きなテーブルがあり、コメントを追加したい情報がRange(D11:CY148)
になります。 "Finish Matrix"(メイン)と "list"(隠し - 2列あり)の2つのタブがあります。Excel VBA大きなテーブル、コメントを追加するVlookup、コマンドボタンを押した後
私には2つの問題があります。
最初の問題 - コードはある程度機能します。セルに値を入力すると、別のシートの情報に基づいてコメントが自動的に追加されます。問題は手動で入力するセルが多すぎることです。コピーして貼り付けるとコードが実行されません。私はCommandButtonを作成し、セルが "list"内にある値を持っているかどうかに応じて、コメントを付けてテーブル全体をリフレッシュするようにしました。私はWorksheet_Changeにコールアウトを作成しようとしましたが、役に立たなかった。 (私は初心者ですので、説明すれば助けになります)
2番目の問題 - 私は、それがうまくいく提案で修正されると仮定しています。時にはセルに入力した後にエラーが発生することがあります。エラー名は覚えていませんが、それは一般的なものの1つです。エラーはポップアップしませんが、コードとは何もしなかったので確かに戻ってきます。
Private Sub Worksheet_Change(ByVal Target As Range)
If Intersect(Target, Columns("A:CX")) Is Nothing Then _
If Intersect(Target, Columns("CY")) Is Nothing Then Exit Sub
Dim lRow As Integer
lRow = Sheets("list").Range("A1").End(xlDown).Row
If Target.Value = vbNullString Then Target.ClearComments
For Each cell In Sheets("list").Range("A1:A" & lRow)
If cell.Value = Target.Value Then
Target.AddComment
Target.Comment.Text Text:=cell.Offset(0, 1).Value
End If
Next cell
End Sub
ありがとうございました!
あなたのデータは、「ある程度まで」働いているように見え、どの部分がうまくいかないのか? –
@ FernandoJ.Riveraそれは動作します - 程度の部分は、私はセル内の値を入力した後、それはコメントで更新されます。そのすべてのデータを、整数の変化形や時には文字による整数で埋めました。 1、2、A1、B1など...各文字は、コメントの中に入れたいアクティビティタイプに対応しています。私が手動で入力した場合、コードは完全に機能します。私たちが通常行っていることは、大きなセクションをコピーして毎週1つずつ貼り付けることです。手動で各セルを入力するのではなく、シートの一番上にある更新ボタンをクリックして範囲全体をリフレッシュする必要があります。 –
一度に複数のセルを更新する場合(コピー/ペーストやCtrl-Enterを使用する場合など)、 'Target'は単一のセルではなく、複数のセルを含むRangeです。すべてのWorksheet_Changeイベントハンドラは、その可能性を考慮する必要があります。 –