1

我試圖複製和粘貼A1中單元格更改時的值範圍。VBA在特殊單元格更改後複製粘貼範圍

例如,如果A1中的單元格(來自公式)更改爲「2016.10」,它將在A2:A14中查找相同的值,找到它並複製範圍B12:E12(也來自公式)並將它們粘貼爲值。或者,如果A1更改爲「2016.11」,則複製粘貼B13:E13的值。

有沒有辦法用VBA做到這一點?

Please_see_the_Photo

在先進的感謝。

External Data is coming from another Sheet

+0

年線是不是太清楚,但如果我理解分辯你爲什麼不使用這個公式爲每個小區(取決於有多少條記錄)要= IF($ A3 = $ A $ 1;「年公式」;「」) – Fabrizio

+0

嗨法布里齊奧,感謝您的回覆。單元格B3:E4中的公式正在計算來自外部源的數據。外部數據每週更新一次,僅顯示當前日曆周(A1)的值。我的目標是記錄過去的日曆周的價值。 – Toli

回答

1

最後,我找到了解決這個問題的方法。下面是我用它來幫助我的代碼:

Sub PasteValues() 

Dim RowData As Long, i As Long 

Set Data = Range("A2:A108") 

RowData = Data.Rows.Count 

For i = 1 To RowData 

    If Data(i, 1) = Cells(1, 1) Then 

    Range(Cells(i + 1, 2), Cells(i + 1, 16)).Copy 
    Range(Cells(i + 1, 2), Cells(i + 1, 16)).PasteSpecial xlPasteValues, 

Operation:=xlNone, SkipBlanks:=False, Transpose:=False 

    End If 
Next i 
Application.CutCopyMode = False 

End Sub 
+0

幹得好! (1) –

1

您正在尋找這樣的事情?

Sub SelectiveCopyPaste() 
Dim WB As Workbook, Data1 As Range, Data2 As Range, RowData As Long, i As Long, FilePath As String 

FilePath = "C:\Program Files\Microsoft Office\Office\RS.xlsb"  'Add your own file path 
Set WB = Workbooks.Add(FilePath) 
Set Data1 = Range("A2:A14")           'Change this accordingly 
'Change this accordingly 
Set Data2 = WB.Worksheets("RS_Summary").Range("Set the range you want to copy here")    

RowData = Data1.Rows.Count 

For i = 1 To RowData 
    If Data(i, 1) = Cells(1, 1) Then 
     Data2(i, 1).Copy Data1(i, 2)        'Change this too 
     Exit For 
    End If 
Next 
End Sub 
+0

謝謝娜斯佳。我只是忘了說,如果A1更改爲「2016.10」,那麼它應該在A2:A14中查找此值(在本例中爲A12),然後將其作爲值旁邊的行範圍進行復制和粘貼(在這種情況下B12:E12) – Toli

+0

@Toli首先,請不要那樣稱呼我。其次,如果您更改A1中的值,它就會像您想要的那樣工作。你有沒有嘗試過我的代碼? –

+0

請原諒我。我妻子的名字也是阿納斯塔西亞,每個人都像納斯提亞一樣呼喚,但我很抱歉。我不明白在這裏寫什麼「在這裏設置你想複製的範圍」?我把「B2:B14」,但它是複製標題。你有什麼提示我應該放哪裏? – Toli