2015-11-01 91 views
0

我手邊有一個問題:我有一個Excel文件有多個工作表,它應該使用工作表A中的單元格中的值來填充工作表B中的單元格。我爲此做了一個小宏,但它只是沒有不應該這樣工作。要麼進入完全不同的單元格,拋出錯誤或複製公式而不是數值。在工作表之間複製數據

的細節是:

數據在工作表A在完成H列和第二行中開始。這些細胞中的數據是來自不同領域的CONCATENATE。

循環應從工作表A中的H2中取第一個值並將其放入工作表B,B1中。然後轉到工作表A中的H3,並將此值放在工作表B,C1中,等等。

它應該這樣做,直到有沒有在工作表左側A柱H.

 Sub Test2() 

' Select the worksheet 

Worksheets("A").Activate 

' Select first cell with data 

Range("H2").Select 

' Loop until no data present 

    Do Until IsEmpty(ActiveCell) 

' Helper Variable for startpoint in worksheet B 

Dim i As Integer 
i = 8 

    ' Copy first value 
    Selection.Copy 

    ' Go to different worksheet 
    Worksheets("B").Activate 

    ' Select first data entry point 
    ActiveCell(1, i).Select 

    ' Paste Data 
    Selection.Paste 

    ' Move helper variable in next column 
    i = i + 1 

    ' Return to worksheet A 
    Worksheets("A").Activate 

    ' Select next row 
    ActiveCell.Offset(1, 0).Select 

    Loop 

    End Sub 

回答

0

值。如果我用這個它爲定義的範圍靜態代碼

Sub Macro1() 
Worksheets("A").Activate 
Range("H2:H12").Select 
Selection.Copy 
Worksheets("B").Activate 
Range("B1:H13").Select 
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ 
    False, Transpose:=True 
Application.CutCopyMode = False 
End Sub 

似乎有點更優雅但是我不知道如何讓它變得「靈活」,直到它變成一個空單元。

我遇到的下一個問題是現在在工作表B中它應該用這個東西做一個矩陣。後的值是第1行,B列並在我有以下公式:

=Table2[[#Headers];[Column1]] 

現在,這個公式應擴展到所增加的數據的數量。

所以像

=Table2[[#Headers];[Column2]] 
=Table2[[#Headers];[Column3]] 
.... 

等取決於附加價值的數字。