0

コードにバグがあります (回避策を見つけました) が、問題の原因を特定するのに役立つことを願っていました。動作しないコードは次のとおりです。

Sub replacewithnumbers1()

Dim ReplacementRange As Range

Set ReplacementRange = Range("a2:c2")
Set ReplacementRange = Range(ReplacementRange, ReplacementRange.End(xlDown))

ReplacementRange.value = ReplacementRange.value

End Sub

これを実行すると、A2:C17 の検索は機能しますが、それより下のすべてが「#N/A」に変更されます。

ここで動作するコードは次のとおりです。

Dim ReplacementRange As Range

Set ReplacementRange = Range("A2")
Set ReplacementRange = Range(ReplacementRange, ReplacementRange.End(xlDown))

ReplacementRange.value = ReplacementRange.value

Set ReplacementRange = Range("b2")
Set ReplacementRange = Range(ReplacementRange, ReplacementRange.End(xlDown))
ReplacementRange.value = ReplacementRange.value

Set ReplacementRange = Range("c2")
Set ReplacementRange = Range(ReplacementRange, ReplacementRange.End(xlDown))
ReplacementRange.value = ReplacementRange.value

Set ReplacementRange = Range("I2")
Set ReplacementRange = Range(ReplacementRange, ReplacementRange.End(xlDown))

ReplacementRange.value = ReplacementRange.value

私がしたことは、それを複数のステップ (各列に 1 つ) に分割することだけでした。一度に 2 つの列を実行すると、同じエラー (A:B または B:C) が発生します。常に行 17 で停止しますが、その理由はわかりません。私を助けてくれませんか?

ありがとう!

4

1 に答える 1

1

なぜこのように振る舞っていたのかがわかりました(と思います)。行 16 が表示されないようにデータ セットにフィルターがあり、フィルターを外すと正しく実行されます。すみません、ちょっと逆境的でした。

于 2013-02-05T22:56:07.500 に答える