Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 复制一系列公式并将值粘贴到选定行_Vba_Excel - Fatal编程技术网

Vba 复制一系列公式并将值粘贴到选定行

Vba 复制一系列公式并将值粘贴到选定行,vba,excel,Vba,Excel,我正在尝试创建一个按钮,该按钮将复制一系列公式,并从选定单元格开始粘贴它们的值 我的配方范围是U1:EN1。我想在单击“获取新数据”按钮时,将这些值粘贴到选定单元格的右侧 以下是我目前的情况: Sub Update_Quote_Data_5() ' ' Update_Quote_Data_5 Macro ' ' Range("U1").Select Range(Selection, Selection.End(xlToRight)).Select Selection.C

我正在尝试创建一个按钮,该按钮将复制一系列公式,并从选定单元格开始粘贴它们的值

我的配方范围是U1:EN1。我想在单击“获取新数据”按钮时,将这些值粘贴到选定单元格的右侧

以下是我目前的情况:

Sub Update_Quote_Data_5()
'
' Update_Quote_Data_5 Macro
'

'
    Range("U1").Select
    Range(Selection, Selection.End(xlToRight)).Select
    Selection.Copy
    ActiveWindow.LargeScroll ToRight:=-5
    Range("U9").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Application.CutCopyMode = False
    Range("U10").Select
End Sub
从这个开始:

Sub Update_Quote_Data_5_The_Sequel()
    Dim r1 As Range, r2 As Range
    Set r1 = Range("U1:EN1")
    Set r2 = ActiveCell
    r1.Copy
    r2.PasteSpecial xlPasteValues
End Sub
编辑#1:

要移动到上一个ActiveCell下的单元格,请执行以下操作:

Sub Update_Quote_Data_5_The_Sequel()
    Dim r1 As Range, r2 As Range
    Set r1 = Range("U1:EN1")
    Set r2 = ActiveCell
    r1.Copy
    r2.PasteSpecial xlPasteValues
    r2.Offset(1, 0).Select
End Sub

你也可以试试这样的东西

Sub Update_Quote_Data()
Dim Rng As Range
Set Rng = Range("U1:EN1")
ActiveCell.Resize(1, Rng.Columns.Count).Value = Rng.Value
End Sub

非常感谢。这正是我想要实现的!如何取消选择U1:EN1并转到下面的下一个单元格,@Gary的学生?@ChrisManis您想转到U2还是ActiveCell下面的单元格?在这种情况下,您只需将范围r2设置为
set r2=ActiveCell.Offset(1)
No,在代码粘贴数据后无法撤消。您唯一可以做的是,在粘贴复制的数据之前,请用户确认是否选择了正确的activecell,如果用户通过单击确认消息窗口中的“是”进行确认,则代码将粘贴数据,否则将退出代码。另外,我认为您应该在
结束子项
之前使用行
Application.CutCopyMode=0
来取消选择复制的范围。感谢您的回答!一种避免复制/粘贴(+1)的聪明方法得到了认可。这个答案唯一的问题是它改变了粘贴值的格式,而不是保留目标单元格的格式。@Gary的学生谢谢!:)@圣诞老人是的,这种方法可能就是这样。