VBA 01:在excel中實現不同sheet之間的數據重組

1. 選擇待操作的工作表,建立sheet對應的變量

定義一個Worksheet工作表對象WS1:

Dim WS1 As Worksheet

把sheet“名單”賦值給指定的變量WS1:

Set WS1 = Worksheets("名單")

或者,通過工作表出現在工作薄中的順序從左到右,依次用1、2、3.……來引用(“名單”爲sheet1):

Set WS1 = Worksheets(1)

2. 選擇待操作的表格區域

單元格區域即爲range對象,既可以是單個單元格,也可以是多個連續的單元格和多個不連續的單元格。

定義一個range對象rng1:

Dim rng1 As Range

3. 操作單元格對象

引用格式:

worksheet_object.Cells(row,col)

4. 查找Find()

5. 完整代碼

Sub Recompose01()

    Dim SUM As Worksheet  'Defination of Two Sheets
    Dim AllOrgs As Worksheet
    Set SUM = Worksheets(1)
    Set AllOrgs = Worksheets(2)

    Dim A As Integer      '3 Column: ORG, ADD & Person
    ORG = 1
    Dim N As Integer
    Add = 14
    Dim Q As Integer
    Person = 17

    Dim SearchString As String
    Dim SearchRange As Range
    Dim ReturnRange As Range
    Dim ReturnRow As Integer
    Set SearchRange = AllOrgs.Range("A183:B427")
    For Ai = 3 To 5
        Debug.Print Ai
        Debug.Print SUM.Cells(Ai, ORG)
        SearchString = SUM.Cells(Ai, ORG) 'No Set
        Set ReturnRange = AllOrgs.Cells.Find(What:=SearchString)
        If Not ReturnRange Is Nothing Then
            ReturnRow = ReturnRange.Row
            Debug.Print ReturnRange
       
            Debug.Print ReturnRow
            SUM.Cells(Ai, Add) = AllOrgs.Cells(ReturnRow, 9) + AllOrgs.Cells(ReturnRow, 10) + AllOrgs.Cells(ReturnRow, 11)
            SUM.Cells(Ai, Person) = AllOrgs.Cells(ReturnRow, 4) + "(" + AllOrgs.Cells(ReturnRow, 6) + ")" + Str(AllOrgs.Cells(ReturnRow, 8))
            SUM.Cells(Ai, Person) = Trim(SUM.Cells(Ai, Person)) 'Delete SPACE
         End If
    Next

End Sub


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章