0
Excelのマクロを使用して、1つのシートから新しいシートに列を変換します。他の場合はExcelマクロ
Sub Macro1()
'
' Macro1 Macro
'
'
Sheets.Add.Name = "Sheet2"
Worksheets("Sheet2").Cells(1, 1).Value = "Column A"
Worksheets("Sheet2").Cells(1, 2).Value = "Column B"
Worksheets("Sheet2").Cells(1, 3).Value = "Column C"
Worksheets("Sheet2").Cells(1, 4).Value = "Column D"
Worksheets("data").Activate
SourceColumn = 2
SourceRow = 2
Cells(SourceRow, 1).Activate
TargetRow = SourceRow
targetcolumn = 1
batchValue = InputBox("Enter value for Batch ID column")
While Cells(1, SourceColumn).Value <> ""
While ActiveCell.Value <> ""
Worksheets("Sheet2").Cells(TargetRow, 1).Value = batchValue
Worksheets("Sheet2").Cells(TargetRow, targetcolumn + 1).Value = ActiveCell.Value
Worksheets("Sheet2").Cells(TargetRow, targetcolumn + 2).Value = Worksheets("Data").Cells(1, SourceColumn).Value
Worksheets("Sheet2").Cells(TargetRow, targetcolumn + 3).Value = Worksheets("Data").Cells(SourceRow, SourceColumn).Value
SourceRow = SourceRow + 1
targetcolumn = 1
TargetRow = TargetRow + 1
Cells(SourceRow, 1).Activate
Wend
SourceColumn = SourceColumn + 1
SourceRow = 2
Cells(SourceRow, 1).Activate
Wend
With Worksheets("Sheet2").Sort
.SetRange Range(Cells(2, 1), Cells(TargetRow, 3))
.Header = xlNo
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
End Sub
これは正常に動作しますが、私はwhile文では「列C」 から括弧をトリミングする必要がある、私は正常に以下のようなコードを更新することにより、ミッド機能を使って、括弧をトリミングできます。
Worksheets("Sheet2").Cells(TargetRow, targetcolumn + 2).Value = mid(Worksheets("Data").Cells(1, SourceColumn).Value, 2, 36)
しかし、私が見つけたことは必要とは異なる長さを持っているいくつかの値があるということでした....
mid(Worksheets("Data").Cells(1, SourceColumn).Value, 2, 10)
だから私は挿入する必要があります。..
列の場合Cは "parent"という単語を含んでいて、mid([Column C]、2,10) else mid([Column C]、2,36)
この仕事を完了するための最も簡単な方法は何ですか?
ありがとうございました!
これは機能しました。ありがとうございました! – user2747356