Excelで、テーブル作りますでしょ。
で、この見出しをMATCH関数で参照したくて、どこかのセルに
=MATCH("市",テーブル[#見出し],0)
と書き込むと、テーブルの見出しを参照して、この場合 "市" なので2が返ってくる。
当然なんの疑問もない。
が、これをVBAからそのようにセルに書き込もうとするとだめ。
Cells(7,1)="=MATCH(""市"",テーブル[#見出し],0)"
これをイミディエイトウィンドウで実行してやると、エラーになる。
Cells(7,1)="=MATCH(""山形市"",テーブル[市],0)"
これは問題ない。A7セルに、テーブルの 市 の列から「山形市」を検索して1が返る式が入る。
多分 #見出し というのが書き込めないくさい。
Cells(7,1)="=MATCH(""市"",テーブル[" & Chr(35) & "見出し],0)"
これでもだめ。
Cells(7,1)="=#"
これだけでも、上記画像のエラーが出る。
Cells(7,1)="=#N/A"
これは#N/Aエラーが書き込まれる。
見たところ、「VBAでセルに数式として#を書き込んだ場合、続きがエラーを指す文言になっていなければエラーになる」という動作をしてるように見えるのだが、では [#見出し] を参照するようにどうやって書けるんだ?