vba - 将多个范围添加到打印区域
问题描述
我有十二个不同的范围,我可能需要包括打印区域。到目前为止,这是我的代码的一部分:
With ActiveSheet.PageSetup
If 'condition is met' Then
.PrintArea = Range(rng1)
.PrintArea = Union(Range(.PrintArea), rng1).Address
End If
'more lines of like code
End With
有几行这样的代码,我知道这种类型的编码不是好的做法,但我需要尽快完成这个项目。我的问题是如何将所需的范围添加到打印区域,因为现在它似乎只打印设置为打印区域的最新范围?
解决方案
打印区域是一个String
,而不是一个Object
。所以你可以这样写:
.PrintArea = "$A$19:$J$32, $A$11:$J$17, $A$34:$J$38"
或者您可以使用String
变量。如果您坚持范围,请使用.Address
以下方式:
Dim rng1 As Range, rng2 As Range, rUni As Range
.PrintArea = rng1.Address & "," & rng2.Address
或者
Set rUni = Union(rng1, rng2)
.PrintArea = rUni.Address
两个最新示例都生成了与第一个示例中的字符串类似的字符串。
有趣的是,以这种分散的方式设置打印区域会导致打印所有单独的范围以分隔页面。我不知道如何解决它。
推荐阅读
- node.js - 错误:接近堆限制的无效标记压缩分配失败 - JavaScript 堆内存不足
- java - 当与 java.util.Queue 一起使用时,Iterator.next() 方法在 for 语句中做什么?
- c - 删除特定元素链表
- bazel - 在我删除主目录中的 .cache 中的一些文件后,bazel 无法构建任何东西
- r - 将 Google Analytics 脚本添加到 R flexdashboard
- django - 如何在 Django 中更改 Summernote 的默认字体?
- function - 有没有办法在给定一些数据点的情况下估计函数的形状或曲率?
- oracle - ORA-06575: 包或函数 FUNC_GETCREATEDTIME 处于无效状态
- laravel - 在我的 Laravel 7 项目中,资产未加载、css、js 甚至图像未加载或链接
- php - 延长 Laravel Passport 中 oauth_access_token 的到期日期