我有两张工作表(称为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