2013-07-23 59 views
1

我必須製作一個宏,它複製一個Excel工作表的整行(包括絕對引用或公式),並根據比較將它們粘貼到下部。這意味着我不僅要複製單元格的內容,而且還要複製絕對引用或公式,因此如果單元格被修改,則更改將反映在我複製單元格的部分。根據字符串中的文本與要複製的行的單元格之間的比較結果來複制行。最棘手的部分到目前爲止,它一直是如何複製的絕對參考或公式如何複製整行(絕對引用)

這裏是代碼我到目前爲止...

Sub Foo() 
    Dim i As Long, iMatches As Long 
    Dim aTokens() As String 
    aTokens = Split("DCV-", ",") 
    For Each cell In ActiveSheet.Range("I1:I104") 
     If (Len(cell.Value) <> 0) Then 
      For i = 0 To UBound(aTokens) 
      If InStr(1, cell.Value, aTokens(i), vbTextCompare) Then 
       iMatches = (iMatches + 1) 
       ActiveSheet.Rows(cell.Row).Copy ActiveSheet.Rows(iMatches + 105) 
       'Sheets("DP_PA 9.70 REV").Rows(cell.Row).Copy Sheets("DP_PA 9.70 REV").Rows(iMatches + 105) 
      End If 
      Next 
     End If 
    Next 
End Sub 
+1

問題是什麼?你有錯誤嗎?或者錯誤的結果? – stenci

+0

不,我沒有得到一個錯誤,事情是,即時通訊triying複製行符合我定義的條件,但即時通訊不試圖複製只是單元格的數據,而是即時通訊triying複製單元格引用,所以如果在原點單元中進行了更改,它將反映在複製的單元格中。 – user2612376

+0

我不明白你在做什麼。你能描述一下你手動做的步驟來獲得相同的結果嗎? – stenci

回答

0

如果你想使公式的精確副本(或公式),保留所有的單元格引用,你可以使用這樣的:如果你想創建到數據的引用

With Worksheets("Sheet1") 
    Range("A20:B21").Formula = Range("A1:B2").Formula 
End With 
+0

好吧,那麼如何使用.Formula複製符合條件iive的行呢?具體來說,這條線是我想修改的一條,以使其複製公式或引用ActiveSheet.Rows(cell.Row).Copy – user2612376

+0

如示例所示,目標範圍(在此例中,目標行中的公式設置爲等於源行中的公式。 – chuff

0

,所有你需要做的是創造是指單元格的公式。

嘗試用這樣的事情:

FirstPartOfFormula = "='" & Sheet1.Name & "'!" 
For C = 1 to 3 
    Sheet2.Cells(R2, C).Formula = FirstPartOfFormula & Sheet1.Cells(R1, C).Address 
Next C