|
下記コードの場合、空白セルが無いのにエラーにならないのは、
On Error Resume Next が、効いているから。
>Dim Deg空白 As Range
>On Error Resume Next
>Set Deg空白 = Range(Cells(i, "A"), Cells(i + x - 1, "B")).SpecialCells(xlCellTypeBlanks)
>Deg空白.Value = "(空白)"
通常の考え方なら、エラートラップをするのは、この行だけでですから、
これを過ぎたら、トラップを解除しておきます。
>Set Deg空白 = Range(Cells(i, "A"), Cells(i + x - 1, "B")).SpecialCells(xlCellTypeBlanks)
このように解除。
>On Error Resume Next
>Set Deg空白 = Range(Cells(i, "A"), Cells(i + x - 1, "B")).SpecialCells(xlCellTypeBlanks)
On Error Goto 0
>Deg空白.Value = "(空白)"
もし、空白セルが無い場合は、「Deg空白」に何もセットされていないわけですから。
エラートラップが解除された状態で、
>Deg空白.Value = "(空白)"
などとやると、エラーになるはずです。
>この1番下で空白をに"(空白)"を入れていますが、マクロを実行した後に
>エラーじゃなかったところに"(空白)"が入っていました。。。
これは、何かの間違いか、勘違いと思います。
Dim Deg空白 As Range
On Error Resume Next
Set Deg空白 = Range(Cells(i, "A"), Cells(i + x - 1, "B")).
(xlCellTypeBlanks)
On Error Goto 0
If Not Rng Is Nothing Then
Deg空白.Value = "(空白)"
Else
空白セルが見つからなかった場合にさせたい処理。
End If
おまけ。
覚えておくとためになるだろう事。
【253】良く解らないSpecialCells
ht tp://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=253;id=FAQ
SpecialCellsは、使った形跡の無い(UsedRangeの範囲以外)セルを無視します。
【42687】範囲指定について
ht tp://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=42687;id=excel
【43413】SpecialCellsの限界って・・・。
ht tp://www.vbalab.net/vbaqa/c-board.cgi?cmd=ntr;tree=43413;id=excel
|
|