ここのメンバーがこのコードを作成するのを手伝ってくれました。値を - から+に変更し、新しいワークシートにもコピーします
私はそれは次のようになり、全行取る代わりに、一枚のシートに正のすべての負の値を変換するの、希望:
とすべてで新しいワークシートに、その行を移動します数字は正に変換されます。
ここのメンバーがこのコードを作成するのを手伝ってくれました。値を - から+に変更し、新しいワークシートにもコピーします
私はそれは次のようになり、全行取る代わりに、一枚のシートに正のすべての負の値を変換するの、希望:
とすべてで新しいワークシートに、その行を移動します数字は正に変換されます。
最も速い方法は、データを配列にロードして処理し、新しいワークシートに書き込むことです。
Sub ntp2()
Dim values As Variant
Dim x As Long
With ActiveWorkbook.Worksheets("originalNeg")
values = .Range("A1" , .Range("I" & .Rows.Count).End(xlUp)).value
End With
For x = 2 To UBound(values)
If values(x, 9) < 0 Then values(x, 9) = Abs(values(x, 9))
Next
With ActiveWorkbook.Worksheets("NewSheet")
.Range("A1").Resize(UBound(values), UBound(values, 2)).value = values
End With
End Sub
'x'の値が負であることがわかっている場合は、' abs(x) 'の代わりに' -x'を指定するだけです。 OTOHでは、最初にテストすることなく、符号に関係なく絶対値を割り当てることができます。どちらの方法もパフォーマンスの浪費のようです。 – user1016274
上記のコードは動作していません。私にエラーを与えて、デバッグをクリックして "値= .Range(" A1 "&.Range(" I "&.Rows.Count).End(xlUp))。"値を修正するように要求しています。 " – OneaboveAll
トーマス正常に動作しますが、問題は、このマクロをボタンに割り当てようとすると、「参照はマクロシートである必要があります」というエラーメッセージが表示されることです。私は元のデータからなる元のシートに3つの異なるマクロを割り当てた3つのボタンを持っています。私は最初の1つをクリックした後、マクロはうまく動作し、私は何をするように頼んだ、2番目のマクロは、負の値を持つすべての行を抽出し、それらを新しいシートに貼り付ける(それは新しいシートを単独で作成し、データがあります) – OneaboveAll
@jsotolaコードは私の質問にあります。あなたが何を話しているのか分かりません。申し訳ありません – OneaboveAll