我有兩張工作表(稱爲ONE和TWO)。我想將一個固定範圍的單元格從一個複製到另一個目標中。但TWO中的目標地址是ONE中固定單元格中的字符串值。將單元格從一個單元格複製到另一個單元格 - 目標地址是單元格中的一個字符串
例如,ONE!C37的字符串值爲「A1500」。我想複製一個單元格!A32:ONE!W32到TWO!A1500。而且,由於ONE!C37單元格中字符串的值發生變化,因此TWO中的目標目標值也會發生變化。
一定很容易,但我看不出如何做到這一點。任何幫助將不勝感激。
我有兩張工作表(稱爲ONE和TWO)。我想將一個固定範圍的單元格從一個複製到另一個目標中。但TWO中的目標地址是ONE中固定單元格中的字符串值。將單元格從一個單元格複製到另一個單元格 - 目標地址是單元格中的一個字符串
例如,ONE!C37的字符串值爲「A1500」。我想複製一個單元格!A32:ONE!W32到TWO!A1500。而且,由於ONE!C37單元格中字符串的值發生變化,因此TWO中的目標目標值也會發生變化。
一定很容易,但我看不出如何做到這一點。任何幫助將不勝感激。
豐富。試試這個:
Sub movetosheet2()
Dim sheet_one_rng As Range:
Dim sheet_two_rng As Range:
Dim sheet_two_address As String:
Set sheet_one_rng = Worksheets("Sheet1").Range("A1:B5")
'Set the range from sheet 1 you'd like to copy onto sheet two
sheet_two_address = Worksheets("Sheet1").Range("D1").Value
'Supposing your location of "A1500" is stored in cell D1 on Sheet1
'Note that the value of the D1 cell needs to be A1500:A1500
'and NOT just A1500
'You are essentially generating a string to pass into a range argument
'Set the destination range on Sheet 2 using your string
Set sheet_two_rng = Worksheets("Sheet2").Range(sheet_two_address)
'Use the Range.Copy method
sheet_one_rng.Copy Destination:=sheet_two_rng
End Sub
希望有幫助!
嘗試下面的代碼:
Sub CopyRange()
Dim RngSource As Range
Dim RngDest As Range
Dim DestString As String
' set source range from sheet "ONE"
Set RngSource = Sheets("ONE").Range("A32:W32")
' read destination range from cell "A37" in sheet "ONE"
DestString = Sheets("ONE").Range("A37").Value
' set destination range from sheet "TWO"
Set RngDest = Sheets("TWO").Range(DestString)
' copy from Sheet "ONE" to Sheet "TWO"
RngSource.Copy Destination:=RngDest
End Sub
你只需要一條線:
Worksheets("ONE").Range("A32:W32").Copy Destination:=Worksheets("TWO").Range(Worksheets("ONE").Range("C37").Value)
,或者使用With-End With
塊和避免一些重複:
With Worksheets("ONE")
.Range("A32:W32").Copy Destination:=Worksheets("TWO").Range(.Range("C37").Value)
End With
謝謝,但是做了一些非常奇怪的換位 - 並使用錯誤的源單元格。 ?\t單元格C37中的字符串是「A1877」,因此它應該將單元格A32:W32複製到另一個工作表中的行1877。 •\t但實際發生的是錯誤的源單元格被複制到該目標行。複製的源單元格不是來自當前工作表(「ONE」),而是從目標工作表中的錯誤位置複製而來。實際的源單元格來自「TWO!C1848:1871」... ... 因此,代碼會從錯誤的源表單中複製錯誤的源單元格。但目標行是正確的。 – rich
謝謝 - 我想我知道這個問題。單元格A32:W32鏈接到並從上面的單元格的垂直範圍獲取它們的值。例如單元格A32具有公式「= C4」。所以,我需要用TRANSPOSE進行復制。我需要複製到目標的值位於一組垂直的單元格中(C4:C27)。他們將被複制到一組水平的單元格。我想複製單元格值而不是格式。 – rich
因此,鑑於我的代碼完全符合您在問題中所要求的內容,是否在您評論中提到的那些新環境中完成了它? – user3598756
失敗的與以下user3598756提供的代碼相同。看到我對他的解釋。總之,複製的源單元格來自目標工作表,而不是來源工作表,以及來自錯誤的列和錯誤的行。 – rich
謝謝 - 我想我知道這個問題。單元格A32:W32鏈接到並從上面的單元格的垂直範圍獲取它們的值。例如單元格A32具有公式「= C4」。所以,我需要用TRANSPOSE進行復制。我需要複製到目標的值位於一組垂直的單元格中(C4:C27)。他們將被複制到一組水平的單元格。我想只複製單元格的值,而不是格式化 – rich
聽起來像你想出來的,基於你的評論user3598756,很高興聽到 – kpg987