2015-06-13 50 views
-1

價值我想在Excel VBA一些工作,但我似乎無法使其正常工作。Excel中點擊對象存儲從一個小區到另一個

下面是它如何工作: 我需要複製並從一個表到另一個「J21」細胞糊價值。但是,J21的價值每週都在不斷變化。所以我想如果我創建一個代碼,我只需按下一個對象(比如說「STORE!」),它會將Sheet1中的「J21」的值複製到「C3」Sheet 2.然後當J21的值發生變化時,我只是按「STORE!」再次,它會複製J21的值,並將其粘貼到「C4」第2頁上沒有「C3」表改變了以前值2

這裏是我的最新嘗試:

Dim myCell As Range, myRange As Range, i As Long 
i = 3 
Set myRange = Sheets("Summary").Range("C3") 
Set myRange = Range(myRange, myRange.End(xlDown)) 
Sheets("Sheet1").Select 
Range("J21").Copy 
Sheets("Summary").Select 
Cells(i, 3).Select 
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, 
         SkipBlanks:=False, Transpose:=False 
i = i + 1 

myCellmyRange是用於我以前的嘗試,但它總是繼續無限的複製粘貼。通常不需要在VBA

+0

你需要顯示一些代碼。使用宏記錄器,並有很多網站向您展示編寫VBA的基礎知識。 – ChipsLetten

+0

我在VBA中並不擅長。我試圖只靠自己學習。所以,免責聲明是啊。但這裏是我的最新嘗試: 暗淡了myCell量程,myRange量程,我只要 I = 3 設置myRange =表( 「摘要」)範圍( 「C」) 設置myRange =範圍(。 myRange,myRange.End(xlDown)) 表( 「工作表Sheet」)。選擇 範圍( 「J21」)。複印 表( 「摘要」),選擇 細胞(I,3)。選擇 Selection.PasteSpecial Paste:= xlPasteValues,Operation:= xlNone,SkipBlanks _ := False,Transpose:= False i = i + 1 myCell和myRange用於我以前的嘗試,但它始終在無限複製粘貼上。 –

回答

1

選擇和複製粘貼。如果要修改單元格的值,最好直接使用範圍對象的value屬性。您似乎想要建立對Sheet2上C2下面第一個空白單元格的引用。你的代碼的問題是Range(myRange,myRange.End(xlDown))選擇整個單元塊(在你想要的單元格上方)而不是單個單元格。雖然可以適當地使用.End(xlDown)來到達所需的單元格,但要正確使用會有點棘手,因爲它的行爲有所不同,具體取決於當前單元格下面的單元格是否爲空。 while循環是一種方法。就像:

Sub store() 
    Dim target As Range, source As Range 
    Set source = Sheets("Sheet1").Range("J21") 
    Set target = Sheets("Sheet2").Range("C3") 
    Do While Not IsEmpty(target.Value) 
     Set target = target.Offset(1) 
    Loop 
    target.Value = source.Value 
End Sub 

芯片的建議,你學習VBA的基礎知識是一個很好的。如果你是像我一樣通過書籍學習比在線教程更好的人,我會推薦幾乎所有John Walkenbach的東西 - 我首先通過閱讀他的「Excel VBA傻瓜編程」的早期版本來學習編程Excel。

+0

爲什麼要投票? – ChipsLetten

相關問題