gpt4 book ai didi

excel - 传递复制粘贴的范围单元格 : Excel VBA

转载 作者:行者123 更新时间:2023-12-03 01:27:55 32 4
gpt4 key购买 nike

我必须将 2 个单元格(引用或值)从一个子单元传递到另一个子单元,以便将第一个单元格中的值复制并粘贴到另一个单元格。由于多个单元格组合需要它,因此我想通过将单元格(引用或值)从一个子例程传递到另一个子例程来完成它。

我尝试了以下代码以及 Byref 和 ByVal 选项的组合。但无法得到想要的结果。本质上,在下面的代码中,单元格 E1792 中存在的任何值都应以值和数字格式复制粘贴到 C1799。

Private Sub Copy_Val(ByRef CopyFrom As Range, ByRef PasteTo As Range)
Application.ScreenUpdating = False

Range(CopyFrom).Select
Selection.Copy
Range(PasteTo).Select

Selection.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False

End Sub

Sub Apply_Filter()
Dim CpFrm As Range
Dim PstTo As Range
Set CpFrm = Range("E1792")
Set PstTo = Range("C1799")
Call Copy_Val(CpFrm, PstTo)
End Sub

有时我会收到类型不匹配错误,有时会收到“400”错误。预期输出是单元格 E1792 中存在的单元格值应按值和数字格式复制粘贴到 C1799。

任何解决此问题的帮助将不胜感激。

最佳答案

由于 CopyFrom 和 PasteTo 是 Range 对象,因此您不需要使用 Range()。您还可以消除 Select 部分并大大简化您的功能:

Private Sub Copy_Val(ByRef CopyFrom As Range, ByRef PasteTo As Range)
Application.ScreenUpdating = False

CopyFrom.Copy
PasteTo.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False

End Sub

关于excel - 传递复制粘贴的范围单元格 : Excel VBA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56341948/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com