VBA:如何将不同工作表上的两个范围合并为一个,以循环遍历

2024-03-07

尝试将两个宽度相等但长度不同的范围(每个范围位于不同的纸张上)读取到另一个范围中,我需要按特定顺序循环组合数据。

Set wRIL = Worksheets("INS")
Set rRIL = wRIL.Range("L2")
Set rRIL = rRIL.CurrentRegion
Set rRIL = rRIL.Offset(1, 0).Resize(rRIL.Rows.Count - 1, rRIL.Columns.Count)

Set wROL = Worksheets("OUTS")
Set rROL = wROL.Range("N2")
Set rROL = rROL.CurrentRegion
Set rROL = rROL.Offset(1, 0).Resize(rROL.Rows.Count - 1, rROL.Columns.Count)

Set rRILROL = Union(rRIL, rROL)  

希望获得 rROL.Rows.Count + rRIL.Rows.Count 长和 rROL.Columns.Count 宽的大小范围。 该代码在 Union 命令处停止。


Union 函数不能跨越多个工作表(因为任何范围对象都包含在单个工作表对象中)。如果您想在一个循环中处理不同工作表上的多个范围,您需要考虑一种不同的策略,例如

Sub test()
Dim AllAreas(2) As Range, Idx As Integer, MyCell As Range, TargetRange As Range

    Set AllAreas(0) = Worksheets("Sheet1").[C4]
    Set AllAreas(1) = Worksheets("Sheet2").[D5]
    Set AllAreas(2) = Worksheets("Sheet3").[E6]
    Set TargetRange = Worksheets("Sheet4").[A1]

    For Idx = 0 To 2
        For Each MyCell In AllAreas(Idx).Cells
            MyCell = "co-cooo!"
            ' combine in targetrange - each cell of any source range is put at same position
            ' in sheet 4 ... mind the precedence ... highest sheet highest prio
            TargetRange(MyCell.Row, MyCell.Column) = MyCell
        Next MyCell
    Next Idx
End Sub

您可以通过最小值和最大值找到所有范围的叠加.Row and .Column范围数组中的所有范围,因此,如果您有一组复杂的规则来聚合部分重叠的范围,请从查找最小和最大角点开始,遍历该范围的所有单元格target范围并询问:区域 0, 1, 2, ... 中是否有一个值,如果有,则决定哪个值优先。

为了使事情变得更加优雅,您可以构建......

Type RngDef
    Rng As Range
    MinCol As Integer
    MaxCol As Integer
    MinRow As Integer
    MaxRow As Integer
End Type

Sub test2()

Dim AllAreas(2) As RngDef, Idx As Integer, MyCell As Range, TargetRange As Range

    Set AllAreas(0).Rng = Worksheets("Sheet1").[C4]
    Set AllAreas(1).Rng = Worksheets("Sheet2").[D5]
    Set AllAreas(2).Rng = Worksheets("Sheet3").[E6]

    For Idx = 0 To 2
        AllAreas(Idx).MinCol = AllAreas(Idx).Rng(1, 1).Column
        AllAreas(Idx).MinRow = AllAreas(Idx).Rng(1, 1).Row
        AllAreas(Idx).MaxCol = AllAreas(Idx).MinCol + AllAreas(Idx).Rng.Columns.Count - 1
        AllAreas(Idx).MaxRow = AllAreas(Idx).MinRow + AllAreas(Idx).Rng.Rows.Count - 1
    Next Idx

    Set TargetRange = Worksheets("Sheet4").[A1]


End Sub

现在您已经掌握了所有范围及其边界......

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VBA:如何将不同工作表上的两个范围合并为一个,以循环遍历 的相关文章

  • 调用退出后应用程序未退出

    我有一个小问题 我似乎无法弄清楚 我正在将 DataGridView 它的内容 保存到 xls 文件中 我这样做没有任何问题 除了在我的任务管理器中它仍然显示它正在运行 我已致电 xlApp Application Quit 这被声明为 D
  • 具有多个条件(全部等于相同值)的 IF 语句的替代方案

    还有比这更好的方法吗 假设所有变量都为零 If var1 0 Or var2 0 Or var3 0 Or var4 0 Or var5 0 Or var6 0 Then do something End If 你可以用Select Cas
  • 你将如何开始自动化我的工作? - 第2部分

    后续这个问题 https stackoverflow com questions 2796128 how would you start automating my job 在经历了第一波进货 9 小时的复制 粘贴 后 我现在相信我已经满足
  • 即使 Excel 中存在多条记录,CopyFromRecordset 也仅复制并粘贴第一行

    我有一个包含表格数据的 Excel 工作表 strSQL SELECT S FIELD NAME1 S FIELD NAME2 S FIELD NAME3 from SourceData A1 IV6 S Dim cn as ADODB C
  • 如何在Excel中识别给定月份的第一,第二等星期一或一周中的其他日期

    我在网上查了一下 但公式看起来很复杂 有什么巧妙的建议吗 例如 我需要一个公式来确定哪个日期是 2014 年 8 月的第一个星期一 类似于第二个星期一的使用 等等 谢谢 一般来说 你可以找到n 第一个x给定的一天M and Y用这个公式 D
  • Excel 宏与 Javascript

    我希望使用 Javascript 中的宏而不是默认的 VBA 来操作 Excel 电子表格 我可以使用以下 VBA 代码执行 javascript 代码 javascript to execute Dim b As String b fun
  • 如何使用 Excel.UriLink.16 更改 Excel URL 的文件关联?

    我正在尝试更改文件关联 以便在另一个浏览器中打开 Excel 单元格中的 URL 根据使用 CMD ftype命令与Excel UriLink 16 我应该能够使用以下命令从 powershell 通过 cmd 执行此操作 To chang
  • Excel 在“.xls”中发现不可读的内容。同时导出水晶报表到excel

    我正在将数据从 Crystal 报告导出到 PDF 工作正常 并显示所有记录 但是当我将其导出到 Excel 文件中并成功导出时 以及当我在 Excel 中打开它时给出错误消息 文件错误 数据可能已丢失 当我点击 确定 按钮时 在 Exce
  • 由于直接引用范围而不是通过中间变量而导致 Excel VBA 运行时错误 450

    当我尝试直接引用某个范围内的值时 出现运行时错误 450 但如果我使用中间变量 它就会起作用 我不明白为什么 所以我担心在将来的某个时候我会再次遇到错误而不知道为什么 我尝试过使用 With End With 块 但当我直接引用范围时它仍然
  • 将 Python Selenium 输出写入 Excel

    我编写了一个脚本来从在线网站上抓取产品信息 目标是将这些信息写入 Excel 文件 由于我的Python知识有限 我只知道如何在Powershell中使用Out file导出 但结果是每个产品的信息都打印在不同的行上 我希望每种产品都有一条
  • Excel VBA - 如何逐行读取csv文件而不是整个文件

    这是我需要读取的 csv 文件内容 header header header header header header value value value value value value value value value 我在网上找到
  • 标准 VBA 函数“找不到项目或库”

    因此 我必须在我的 PC 上运行别人的 Excel 应用程序 并且在标准函数 如日期 格式 十六进制 中间等 上收到 找不到项目或库 的信息 一些研究表明 如果我在这些函数前加上 VBA 前缀 如 VBA Date 中那样 它会正常工作 网
  • For...VBA 中的下一个循环超出限制

    我正在使用一个For Next循环填充数组 如下所示 ReDim array 1 to 100 1 to 100 For i 1 to 100 Next i But the i计数器似乎总是转到 101 而不是停止在 100 因此 这会在我
  • Excel VBA 导出到文本文件。需要删除空行

    我有一个工作簿 使用以下脚本将其导出到文本文件 它工作正常 但是当我打开文本文件时 末尾总是有一个空行 这导致我在生成此文本文件后运行的另一个脚本出现问题 有关如何从导出中删除空行的任何帮助 Code Sub Rectangle1 Clic
  • 查找并替换目录中所有 Excel 文件工作簿中的字符串

    我正在编写 VBA 代码来替换位于特定目录中的多个 Excel 文件 工作簿 中的特定字符串 我尝试在 Stack Overflow 上搜索 找到答案 但这与通过 Excel 中的宏替换文本文件中的字符串有关 相同的链接是查找并替换文件中的
  • OpenArgs 为空问题

    我正在使用OpenArgs使用时发送值的参数DoCmd OpenForm DoCmd OpenForm frmSetOther acNormal acFormAdd acDialog value 然后我用Me OpenArgs在打开的表格内
  • MS Access 执行 POST Web 请求

    在我的 MS Access 应用程序中 我需要定期向我的网络服务器发送一批信息 我不需要任何花哨的东西 比如 SOAP XML RPC 或任何东西 只需一个简单的 POST 页面请求就足够了 我用谷歌搜索了一下 但找不到任何真正有用的东西
  • Excel VBA 过滤和复制粘贴数据

    给定一个数据集 假设有 10 列 在 A 列中我有日期 在 B 列中我有 我想仅过滤 A 列 2014 年的数据 B 列 ActiveSheet Range A 1 AR 1617 AutoFilter Field 5 Operator x
  • 如何在字符串vba中包含引号

    我想存储以下文本 Test1 Monday Test Abcdef 全部在字符串中包含引号 我知道要在字符串中包含引号 我必须包含 之前 但在这里这不是一个很好的解决方案 因为我在文本中有太多这样的解决方案 知道如何一次完成这一切吗 您有两
  • Confluence:使用 VBA 更新现有页面

    我尝试使用 VBA 更新 Confluence 页面 我的想法是使用REST API加载页面内容 修改内容然后上传修改后的版本 这是我的代码 Private Sub TestRESTApi Dim uname As String uname

随机推荐

  • 升级到 Xcode 9 后,cordova 应用程序将无法构建,错误 70,需要配置文件

    昨天我们从 xcode 8 3 2 升级到版本 9 现在我们的企业发行版 apache cordova ios 应用程序拒绝构建 2017 09 21 07 37 16 787 xcodebuild 70400 217569 MT IDED
  • 如何获取我的代码的结束地址

    我正在为一个课程项目从头开始编写一个实时操作系统 在将代码下载到芯片后 我想知道代码的结束地址 因为我计划将空闲内存用于堆栈空间 并且需要确保不会覆盖现有代码 我听说 GCC 提供的 end 变量是代码的结尾 但我不知道 end 的含义是什
  • 在后台运行时像 Pastebot 一样抓取 UIPasteboard

    我知道这是可能的 因为 Tapbots Pastebot 就是这么做的 我试图在我的 iPhone 应用程序在后台运行时抓取 UIPasteboard 并将其添加到 UITableView 中 就像 Pastebot 所做的那样 但我也尝试
  • 查找 Git 提交来自哪个分支

    有没有办法根据给定的情况找出提交来自哪个分支SHA 1 http en wikipedia org wiki SHA 1哈希值 如果您能告诉我如何使用 Ruby Grit 来完成此任务 那就加分了 虽然 Dav 的说法是正确的 即信息并未直
  • 安卓。以列表视图显示联系人

    我想在列表视图中显示联系人 并对所有联系人添加操作 例如单击特定联系人 它应该显示电话号码 邮件 ID 和删除特定联系人 import android app ListActivity import android content Cont
  • 为什么我无法以编程方式查看 Android 中所有正在运行的应用程序?

    我试图列出所有正在运行的应用程序 但我不知道为什么我不能这样做 当我尝试运行以下命令时 我只返回了我的应用程序 List
  • 如何使用 Django ORM 在没有数百个查询的情况下选择多对一对多?

    我的数据库具有以下架构 class Product models Model pass class Tag models Model product models ForeignKey Product attr1 models CharFi
  • 多个WebGLRenderer可以渲染同一个场景吗?

    是否可以使用两个实例WebGLRenderer 使用两个Canvas渲染相同的场景 var renderer new THREE WebGLRenderer canvas canvas1 renderer setSize 100 100 v
  • C# 锁定 WinForm 控件

    在我编写的程序中 用户可以向窗体添加控件并移动它们 并在伪设计模式下设置一些属性 我希望能够在按下按钮切换到 数据模式 时将所有这些控件锁定到一个位置 我怎样才能做到这一点 我希望能够循环遍历所有控件并使用 Lock 属性 但我注意到它没有
  • Xcode:尝试在 iOS 模拟器中运行应用程序时出现无效符号链接错误

    在我的应用程序编译阶段结束时 我看到无效的符号链接错误 这只是我每次运行时创建的一些临时目录 我尝试删除它但无济于事 该应用程序在设备上运行良好 任何帮助将非常感激 当您的应用程序包含指向应用程序包外部的符号链接时 通常会发生该错误 在为设
  • 在javascript中,使用回调执行多个异步函数的最佳实践是什么?

    有一个函数需要调用不确定数量的其他 可能异步 函数 每个函数都带有回调 我使用以下模式 虽然很确定它是正确的 但在美学上不太令人愉悦 fn responsible for figuring out and calling aysnc fun
  • Excel VBA从url获取网站标题

    Excel VBA 中的 HTML 页面标题 https stackoverflow com questions 7625316 html page title in excel vba 14509576 14509576 我知道这已经相当
  • Netty 4.0多端口,每个端口有不同的协议

    我想 netty 是我所知道的最好的 java 网络框架 在阅读并尝试一些示例后我有疑问 1 使用netty 4 0创建具有不同协议的多端口网络服务器的最佳方法是什么 每个服务器创建 EventLoopGroup bossGroup new
  • 如何覆盖引导样式

    我创建了轮播 我需要覆盖样式指示器按钮 我有风格 carousel indicators position absolute bottom 10px left 50 z index 1 width 60 padding left 0 mar
  • D2009 TStringlist ansisstring

    夏天的商业平静已经开始 所以我开始迁移到 D2009 我粗略地确定了程序的每个子系统是否应该保留 ascii 或者可以是 unicode 然后开始移植 一切都很顺利 所有组件都在 D2009 版本中 有些组件 如 VSTView 虽然稍微不
  • 如何将多个参数传递给 apply 函数

    我有一个名为 count 的方法 它需要 2 个参数 我需要使用 apply 方法来调用此方法 但是 当我将两个参数传递给 apply 方法时 出现以下错误 类型错误 counting 恰好需要 2 个参数 给定 1 个 我看过以下主题py
  • NSImage 无法缩放

    我正在开发一个快速应用程序 其中我有一种方法可以将 2x 图像重新缩放为常规图像 问题是它没有 Why BOOL createNormalImage NSString inputRetinaImagePath NSImage inputRe
  • 安装 IPython 开发版本后,IPython 笔记本无法启动

    我今天尝试安装 IPython 的开发版本 但是当我运行 ipython Notebook pylab inline 时 我打开一个空笔记本 没有仪表板 只有一个空白页 命令行显示 WARNING tornado access 404 GE
  • 图表未使用 Shiny R 和 NVD3 渲染

    我一直在尝试使用 NVD3 库创建闪亮的时间序列图 我对 R Shiny 和 NVD3 比较陌生 问题是 当我运行 ShinyApp 时 浏览器上没有呈现任何图表 使用 Chromes 开发人员工具 我可以看到 myChart 的 div
  • VBA:如何将不同工作表上的两个范围合并为一个,以循环遍历

    尝试将两个宽度相等但长度不同的范围 每个范围位于不同的纸张上 读取到另一个范围中 我需要按特定顺序循环组合数据 Set wRIL Worksheets INS Set rRIL wRIL Range L2 Set rRIL rRIL Cur