特定のワークシートに対してのみ実行するマクロが必要です。マクロの目的は、指定された範囲を探して負の値を見つけ、行全体を新しいワークシートに抽出すると同時にそのネガティブをポジティブに変換する場合です。私はいくつか考え出したが、これは完全に間違っていることを知っている。たくさんのものが足りない。まだ学習しようとしている、このvbaの新しいもの。あなたが提供できる任意のヘルプに事前に感謝します。 fyi ntpはネガティブストーリーを表します。それが役立つかどうかわからない、ちょうど私が私の小さな「コード」の代わりに、特定のワークシート上で実行するVBAマクロ
Sub ntp()
Dim ws As Worksheet
If ws.Name <> "originalNeg" Then
For Each Cell In Range("I2:I1048576")
If Cell.Value < 0 Then
Cell.Value = Abs(Cell.Value)
End If
Next Cell
End Sub
'Rows.Count'?無条件?!?!?!さあ、余分な '.'は入力するのにあまりにも多くの努力はありません。 – YowE3K
@ YowE3K - 私は実際に自分自身を熟考していました - 「行数」で、いつも同じではないでしょうか?私は、hm、それはどこですか?ああ、 '.'はタイプするのが難しくありません。しかし、私は意識的にここをここに残しておいて、コメントすることをほぼ餌にしていたので、私は尋ねることができた。 ...それで、 '行数は本当に重要でないか、遅くなってしまいますか? :D – BruceWayne
実際には、あなたには適格でない 'Worksheets'があるので、' ActiveWorkbook'のワークシートを参照しています。これは 'ActiveSheet'と同じワークブックです。この場合**は* *問題。しかし、アクティブなワークブックが 'xlsx'ファイルで、あなたが参照していたワークシートが' xls'ファイルにあった場合、 'ActiveSheet.Rows.Count'は' 1048576'になり、処理されるシートは '65536' 1004エラーが発生します。 (ファイルが逆の場合は、65536から上がったので、1000000の行が使用されていない可能性があります。) – YowE3K