2

今、私はタイプしています:

ActiveCell.Offset(-1, 0) = ActiveCell.Offset(-1, 0) + 1

ActiveCell.Offset毎回入力するよりも、セルへの参照を設定してそれを使用する方がはるかに好きです。という範囲として設定しようとしましたsick

Dim sick As Range
Set sick = ActiveCell.Offset(-1, 0)

しかし、私が言ったときはうまくいきませんでしたsick = sick + 1。それはタイプの不一致だと言いました。なんで?

4

2 に答える 2

2

はい、これは病気がタイプ範囲であるためです。次のように value プロパティを使用して、その値にアクセスできます。

sick.value = sick.value + 1
于 2013-11-15T01:12:34.883 に答える
0

考えられる理由は、sickセルに数値以外のタイプのデータ、おそらく文字列 (つまりテキスト) が含まれていることです。

私はあなたのコードを試しました; セルに数値データ(またはVBAがそのように解釈できるデータ)が含まsick = sick + 1れている限り、私にとってはうまくいきました。ただし、文字列が含まれているsick場合、タイプの不一致エラーを再現できました。sick

.Valueは Range 型のデフォルト プロパティであることに注意してください。

sick = sick + 1

とまったく同等です

sick.Value = sick.Value + 1

これらの 2 つの行は、同じ意味で使用できます。あなたがしていることをより明確にするため、後者を好む人もいます。より簡潔であるため、他の人は前者です。それは純粋に好みの問題です。

于 2013-11-15T08:09:07.667 に答える