私はゼロにしようとしているいくつかのワークシートに見出しを持つデータ(数値)がたくさんあります。これは、次のように各列で実行されます。列の最初の行の値を取得し、列のすべての行からこの値を減算します。エラー1004、オブジェクト '_Worksheet'のメソッド 'Range'が失敗しました
(:)ので、最善の方法ではないかもしれないが、VBAにImは新しい)私は一緒にこのコードを入れている
Dim ws As Worksheet
Dim Header As Range, Coldata As Range
Dim firstrow As Long
Dim cell As Range, cell2 As Range
Set ws = ActiveSheet
Set Header = ws.Range("B5:CJ5")
For Each cell In Header
If cell Is Nothing Then Exit For
firstrow = cell.Offset(2).Value
***Set Coldata = ws.Range(cell.offset(3),cell.Offset(3)).End(xlDown)***
cell.Value = 0
For Each cell2 In Coldata
cell2.Value = cell2.Value - firstrow
Next
Next
MsgBox "Done zeroing"
このサブは、私が働いているワークブックのモジュールの下にあります。このサブをVBAウィンドウの内側から実行するたびに、コード行の説明に記載されているエラーが表示されます。
ワークシートから実行しようとすると、マクロを実行できません。このワークシートでマクロが使用できないか、すべてのマクロが無効になっている可能性があります。問題は、動作する同じモジュールで別のマクロを実行することです。そのため、無効になっているマクロは問題になりません。
私には何が欠けていますか?
ありがとうございます!
編集、私はそれを修正しました..しかし、それを実行するには多くの時間がかかりますか? Excelを実行するとフリーズする?
coldataは今やセルの範囲になりますか?私は.Range関数を使うべきではありませんか? –
@MofasaE 'Header'は範囲です。 'cell'は' Header'の部分なので範囲でもあります。... 'ws.'か* Range()*関数のどちらも必要ないはずです。その行 –
私はそれを得た、それは私がそれを実行するとフリーズ? –