我想多列使用相同的標題名稱複製到一個新的工作表。具有相同名稱的拉列和複製到不同的工作表
我遇到的問題是它只複製一列而留下其他空白。
在這個例子中,我想要的日期是在第1列和5列,但它只有5
Sub MoveColumns()
' MoveColumns Macro
' Description: Rearrange columns in Excel based on column header
Dim iRow As Long
Dim iCol As Long
'Constant values
data_sheet1 = InputBox("Specify the name of the Sheet that needs to be reorganized:") 'Create Input Box to ask the user which sheet needs to be reorganised
target_sheet = "Final Report" 'Specify the sheet to store the results
iRow = Sheets(data_sheet1).UsedRange.Rows.Count 'Determine how many rows are in use
'Create a new sheet to store the results
Worksheets.Add.Name = "Final Report"
'Start organizing columns
For iCol = 1 To Sheets(data_sheet1).UsedRange.Columns.Count
'Sets the TargetCol to zero in order to prevent overwriting existing targetcolumns
TargetCol = 0
'Read the header of the original sheet to determine the column order
If Sheets(data_sheet1).Cells(1, iCol).value = "DATE" Then TargetCol = 1
If Sheets(data_sheet1).Cells(1, iCol).value = "SYSTEM NAME" Then TargetCol = 2
If Sheets(data_sheet1).Cells(1, iCol).value = "CH" Then TargetCol = 3
If Sheets(data_sheet1).Cells(1, iCol).value = "CARR KEY" Then TargetCol = 3
If Sheets(data_sheet1).Cells(1, iCol).value = "FLAG" Then TargetCol = 4
If Sheets(data_sheet1).Cells(1, iCol).value = "DATE" Then TargetCol = 5
'If a TargetColumn was determined (based upon the header information) then copy the column to the right spot
If TargetCol <> 0 Then
'Select the column and copy it
Sheets(data_sheet1).Range(Sheets(data_sheet1).Cells(1, iCol), Sheets(data_sheet1).Cells(iRow, iCol)).Copy Destination:=Sheets(target_sheet).Cells(1, TargetCol)
End If
Next iCol 'Move to the next column until all columns are read
End Sub
您不能分配兩個值相同的變量。 – SJR