excel - 将范围总和粘贴到另一个单元格
问题描述
我正在尝试处理将范围地址复制到剪贴板的代码,当我粘贴它时,它会粘贴复制范围的总和。当我将我的范围复制并粘贴到同一个工作表时,下面的代码有效。当我将范围复制并粘贴到同一工作簿的不同工作表时,它也可以工作,只要我的范围是按顺序排列的。
但是,如果我的范围是例如A1,A3
我想对单元格求和A1
并A3
忽略单元格A2
,那么我的代码只能在同一个工作表中工作。如果我尝试将非连续范围复制并粘贴到不同的工作表,我的结果是=+SUM(Sheet1!A1,A3)
并且我希望我的结果是=+SUM(Sheet1!A1,Sheet1!A3)
.
这是我的部分工作代码:
Sub CopySum()
Dim ObjData As New DataObject
ObjData.Clear
ObjData.SetText "+sum('" & Selection.Parent.Name & "'!" & Selection.Address(0, 0) & ")"
ObjData.PutInClipboard
End Sub
请让我知道我应该进行哪些更改才能获得所需的结果。
解决方案
如果您想更改=+SUM(Sheet1!A1,A3)
为=+SUM(Sheet1!A1,Sheet1!A3)
,只需将所有内容替换,
为,Sheet1!
. 所以你的代码需要
ObjData.SetText "+sum('" & Selection.Parent.Name & "'!" & Replace$(Selection.Address(0, 0), ",", ",'" & Selection.Parent.Name & "'!") & ")"
其实我以为
Selection.Address(RowAbsolute:=False, ColumnAbsolute:=False, External:=True)
也应该返回Sheet1!A1,Sheet1!A3
,External:=True
但显然存在一个错误,它返回显然不是人们所期望的(因为该方法只返回第一个作为外部的Sheet1!A1,A3
没有任何意义)。address
推荐阅读
- symfony - Symfony4 DateTimeType 显示无效日期
- amazon-s3 - 在 EC2 中运行时,Flink 未从 S3 读取文件
- c# - 确保在 UI 线程上创建新表单
- video - 什么是 I 帧,它们会影响视频大小吗?
- angular - TypeError: changes.payload.docChanges is not a function in Angular 6 using AngularFire2 v5-rc9
- android - TexInputLayout 错误消息未设置
- selenium - 每次节点被杀死时,Selenium Grid 都会重新启动
- php - Foreach ,并通过 ID 获取名称不返回任何内容
- r - R合并循环
- python - 函数中的Python变量重新定义