テーブルにデータを書き込むいくつかのユーザーフォームコードを使用して実験しています(コードは機能します)。ST は名前付きの範囲です。
With Range(ST)
.Cells(Range(ST).Count).Offset(1, 0).EntireRow.Insert
.Resize(Range(ST).Rows.Count + 1).Name = ST
.Cells(Range(ST).Rows.Count, 1) = Range(ST).Rows.Count - 1
.Cells(Range(ST).Rows.Count, 2) = TextBox2.Text
End With
私の質問は:
最終結果に影響を与えることなく、次のように2行目と3行目を書き換えることができるのはなぜですか
.Cells(.Count).Offset(1, 0).EntireRow.Insert
.Resize(.Rows.Count + 1).Name = ST
しかし、他の行の変更など
.Cells(.Rows.Count, 2) = TextBox2.Text
含まれているはずのテーブルの Entry がTextBox2.Text
空白のセルを返すようにします。
ありがとう(コードに関するその他のコメントも歓迎します)
編集:
残念ながら、あなたが言ったように動作しないという理由だけで、この質問を投稿しました。ヘルプファイルを詳細に読んだ後、次の行を信じています:
「式は、ブロックに入ると一度評価されます。With ブロック内から式を再割り当てすることはできません。」
次のことを意味します。
.Resize(Range(ST).Rows.Count + 1).Name = ST
が問題で、2行かかりました:
.Cells(Range(ST).Count).Offset(1, 0).EntireRow.Insert
.Resize(Range(ST).Rows.Count + 1).Name = ST
with ブロックの外で、すべてが期待どおりに機能しました! 私はこれを正しく解釈しましたか?私がファイルをアップロードした場合、誰かが興味を持ちますか? (おもちゃの実験コードは数行未満です)