性格悪い人が優勝

Sub test()
Dim 行1 As Long, 最終行 As Long, 行2 As Long
Sheets("Sheet2").Cells.ClearContents
Sheets("Sheet1").Activate
最終行 = Range("C65536").End(xlUp).Row
行2 = 1
For 行1 = 1 To 最終行
Sheets("Sheet2").Cells(行2, 1).Resize(1, 3) = Range(Cells(行1, 1), Cells(行1, 3)).Value
Sheets("Sheet2").Cells(行2, 3).Value = Abs(Sheets("Sheet2").Cells(行2, 3).Value)

If Range("A" & 行1).Value = "BBBB1" Then
Sheets("Sheet2").Range("A" & 行2) = Range("A" & 行1) & "-1"
Sheets("Sheet2").Cells(行2 + 1, 1).Resize(1, 3) = Range(Cells(行1, 1), Cells(行1, 3)).Value
Sheets("Sheet2").Range("A" & 行2 + 1) = Range("A" & 行1) & "-2"
行2 = 行2 + 1
End If
If Range("A" & 行1) = "" Then
行2 = 行2 - 1
Sheets("Sheet2").Range("C" & 行2) = Sheets("Sheet2").Range("C" & 行2) + Range("C" & 行1)
End If
行2 = 行2 + 1
Next 行1
End Sub

を編集したいのですが全然図りません
ご指導お願いします
元データ
AAAA5 9601  950
BBBB1 9660  150
ASAS9 9654  -50
AXCW5 9603  1375

以下の用にマクロで変換する用に出来たのですが
【1】
BBBB1だけではなくAAAA5も対処になったときの
追加方法です
元データは一切変更が出来ません
※フォントの変更も不可です
【2】
元データと変換後データがSheet1からSheet2になっていますが
Sheet1の元は範囲はA1~C400で変換後をSheet1E1~G400にしたいのです

AAAA5 9601  950 
BBBB1-1 9660  150 
BBBB1-2 9660  150
ASAS9 9654  50
AXCW5 9603  1375

A 回答 (1件)

【1】


BBBB1だけではなくAAAA5も同じ処理をしたいというのであれば、If文の条件を見直すだけではないかと。
⇒ If a = 1 or b = 2 Then
aが1 または bが2 の時。

【2】
書き出す位置をシート2のA~C列をシート1のE~G列に変更するだけではないかと。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!