| -1430- ハマってしまった! |
|
VBAプログラムがバグで苦しんでいる。 何十枚ものシートから転記したデータのシートごとのスタート行を 4行区切りにするという仕様が、間にデータ 0件のシートが入ったり、先頭シートが 0件だったりしてバグってしまった。マクロ命令のほんの些細なオプションの指定の仕方のノウハウが不足しており、スキルの未熟さを思い知らされている。 例えば、Findというセルのデータを検索する命令なんだが 1行から1000行まで数字が昇順にいくつかずつ並んでいる場合、その先頭行を検索するのに、つい FoundCell = .Columns(nscol).Find(What:=k, After:= .Cells(1, nscol), _ SearchDirection:=xlNext) などとやってしまうんだが、これだと kという値が1行目~2行目に入っていても 1行目の後ろから検索開始するので 2行目のセルが返されてしまう。 「1」の代わりに 「Rows.Count」 で最終行を指定すると、最終行の次は1行目に戻って検索するから 1行目のセルが検出できる。単純な問題なんだが、知らないと最初からはそうは書かない。 今日の写真はムクゲ。1週間ほど前から 1輪、2輪と咲き始めた。パソコンと睨めっこしている間に 夏だ! |
|
2015/06/16 |