Sub Combine() Dim J As Integer 'On Error Resume Next Sheets(1).Select Worksheets.Add before:=Sheets(1) Dim Original As Long Sheets(1).Name = "DB" Sheets(2).Activate Sheets("DB").Range("A1:L1").Value = Sheets(2).Range("A3:L3").Value Original = Sheets("DB").Cells(1, Columns.Count).End(xlToLeft).Column Sheets("DB").Cells(1, Original + 1).Value = "Manufacturer" Sheets("DB").Range("A1:M1").Borders.LineStyle = xlContinuous Sheets("DB").Range("A1:M1").Interior.Color = RGB(191, 191, 191) For J = 2 To Sheets.Count If ActiveWorkbook.Sheets(J).Name = "D-LinkCN" Then Dim c, r As Integer c = 0 r = 0 Sheets("D-LinkCN").Activate r = Cells(ActiveSheet.Rows.Count, 1).End(xlUp).Row c = Cells(4, ActiveSheet.Columns.Count).End(xlToLeft).Column Range(Cells(1, 1), Cells(r, c)).Select Selection.Offset(3, 0).Resize(Selection.Rows.Count - 3).Select Selection.Copy Destination:=Sheets("DB").Range("A65536").End(xlUp)(2) Else Sheets(J).Activate Range("A1").Select Selection.CurrentRegion.Select Selection.Offset(3, 0).Resize(Selection.Rows.Count - 3).Select Selection.Copy Destination:=Sheets("DB").Range("A65536").End(xlUp)(2) End If Next Sheets("DB").Select End Sub Sub Brand() Dim C As Integer C = 1 For J = 2 To Sheets.Count Dim I As Integer Dim RowNum As Integer Sheets(J).Select RowNum = Range("A" & Rows.Count).End(xlUp).Row RowNum = RowNum - 3 For I = 1 To RowNum Sheets("DB").Cells(I + C, 13).Value = Sheets(J).Name Next C = C + RowNum Next End Sub Sub forGeneric() Sheets("DB").Select Original = Sheets("DB").Cells(1, Columns.Count).End(xlToLeft).Column Sheets("DB").Cells(1, Original + 1).Value = "Note" '新增一欄位名稱為: Note. For J = 2 To Rows.Count '搜尋所有資料,找到 Note ,並將其值複製到 Generic 的 Note 欄位. If Cells(J, 1).Value = "Note:" Then Cells(J, 2).Copy Cells(J - 1, 14).PasteSpecial xlPasteValues End If Next Sheets("DB").Select Selection.CurrentRegion.Select Selection.Borders.LineStyle = xlNone Sheets("DB").Select For J = 2 To Rows.Count '再次搜尋 Note,並將其刪除. If Cells(J, 1).Value = "Note:" Then Rows(J).EntireRow.Delete End If Next Sheets("DB").Select Columns("N:N").Select Selection.ClearContents End Sub Sub Reorder_Columns() Dim ColumnOrder As Variant, ndx As Integer Dim Found As Range, counter As Integer ColumnOrder = Array("Manufacturer", "Device Name", "Tested Firmware", "Device Type", "Video Ch", "Video Format", "Max Resolution", "PTZ", "Audio-in/out", "I/O Ch", "Edge Feature", "Remarks", "DevicePack Version") counter = 1 Application.ScreenUpdating = False For ndx = LBound(ColumnOrder) To UBound(ColumnOrder) Set Found = Rows("1:1").Find(ColumnOrder(ndx), LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False) If Not Found Is Nothing Then If Found.Column <> counter Then Found.EntireColumn.Cut Columns(counter).Insert Shift:=xlToRight Application.CutCopyMode = False End If counter = counter + 1 End If Next ndx Application.ScreenUpdating = True Range("1:1").Select Selection.Delete Range("N:N").Select Selection.Delete End Sub