vba 在非连续范围内循环

2024-04-16

我的行有一个不连续的范围(myRange 的示例地址:$2:$2,$4:$205,$214:$214),我想访问该范围内的特定行和列。我已经尝试过以下方法:

'获取范围内第2行第1列的值

myRange.rows(2).Cells(, 1).Value

但是,这给了我工作表中第二行的值,而不是在范围内 - 这意味着它给了我地址 $3$1 - 而不是 $4$1

有人可以解释一下我如何访问我范围内的值吗? (可能与不同地区有关)

谢谢


这是我的条目 - 不一定比欧文的好

Function GetValue(rInput As Range, Row As Long, Column As Long) As Variant

    Dim rArea As Range
    Dim lCumRows As Long
    Dim lActualRow As Long

    For Each rArea In rInput.Areas
        lCumRows = lCumRows + rArea.Rows.Count
        If Row <= lCumRows Then
            lActualRow = rArea.Rows(1).Row + (Row - (lCumRows - rArea.Rows.Count + 1))
            Exit For
        End If
    Next rArea

    If lActualRow > 0 Then
        GetValue = rInput.Parent.Cells(lActualRow, Column).Value
    End If

End Function

Function GetValue2(rInput As Range, Row As Long, Column As Long) As Variant

    Dim rRow As Range
    Dim lRowCnt As Long

    For Each rRow In rInput.Rows
        lRowCnt = lRowCnt + 1
        If lRowCnt = lrow Then
            GetValue2 = rRow.Cells(1, Column).Value
            Exit For
        End If
    Next rRow

End Function

然后去读书http://www.dailydoseofexcel.com/archives/2004/07/07/the-strange-object/ http://www.dailydoseofexcel.com/archives/2004/07/07/the-strange-object/了解 Excel 为何会出现这种行为。

如果你有兴趣的话还有测试过程

Sub test()

    Dim myRange As Range

    Set myRange = Union(Rows(2), Range("4:205"), Rows(214))

    Debug.Print GetValue(myRange, 1, 2), GetValue(myRange, 1, 2)
    Debug.Print GetValue(myRange, 2, 2), GetValue(myRange, 2, 2)
    Debug.Print GetValue(myRange, 3, 2), GetValue(myRange, 3, 2)
    Debug.Print GetValue(myRange, 200, 2), GetValue(myRange, 200, 2)

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

vba 在非连续范围内循环 的相关文章

  • 从受密码保护的 Excel 文件到 pandas DataFrame

    我可以使用以下命令打开受密码保护的 Excel 文件 import sys import win32com client xlApp win32com client Dispatch Excel Application print Exce
  • 你将如何开始自动化我的工作? - 第2部分

    后续这个问题 https stackoverflow com questions 2796128 how would you start automating my job 在经历了第一波进货 9 小时的复制 粘贴 后 我现在相信我已经满足
  • 通过 PHP 检测 excel .xlsx 文件 mimetype

    我无法通过 PHP 检测 xlsx Excel 文件的 mimetype 因为它是 zip 存档 文件实用程序 file file xlsx file xlsx Zip archive data at least v2 0 to extra
  • 即使 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 宏与 Javascript

    我希望使用 Javascript 中的宏而不是默认的 VBA 来操作 Excel 电子表格 我可以使用以下 VBA 代码执行 javascript 代码 javascript to execute Dim b As String b fun
  • Excel 工作表到 iPhone 数据 -- A 点到 B 点

    尽可能简单 我有一个非常简单的 Excel 电子表格 只有 1000 多条记录 我想将其用作 iPhone 应用程序的静态数据源 最好的进攻计划是什么 我心中的可能性 1 直接读取XLS作为数据源 是否有Obj C库用于此 2 将XLS 转
  • 由于直接引用范围而不是通过中间变量而导致 Excel VBA 运行时错误 450

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

    我编写了一个脚本来从在线网站上抓取产品信息 目标是将这些信息写入 Excel 文件 由于我的Python知识有限 我只知道如何在Powershell中使用Out file导出 但结果是每个产品的信息都打印在不同的行上 我希望每种产品都有一条
  • 标准 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 因此 这会在我
  • 将表行从 Word 文档复制到现有文档表特定单元格

    我正在寻找一个宏 它将内容从一个 Word 文档中的表格复制到另一个现有 Word 文档中的表格到特定单元格中 从第 5 行开始 复制后面的所有行并将其粘贴到现有文档中的第 5 行 这可能吗 在此输入图像描述 https i stack i
  • 如何禁用 openpyxl 表中的自动过滤器?

    当我使用 openpyxl 创建表时 它默认在所有列上添加自动过滤器 使用中提供的示例可以重现该行为文档 https openpyxl readthedocs io en stable worksheet tables html 我想显示没
  • Excel VBA 导出到文本文件。需要删除空行

    我有一个工作簿 使用以下脚本将其导出到文本文件 它工作正常 但是当我打开文本文件时 末尾总是有一个空行 这导致我在生成此文本文件后运行的另一个脚本出现问题 有关如何从导出中删除空行的任何帮助 Code Sub Rectangle1 Clic
  • 如何使用 VBA 将 mm/dd/yyyy 更改为 dd/mm/yyyy

    我在使用 VBA 将 mm dd yyyy 转换为 dd mm yyyy 日期格式时遇到问题 我有一个这样的表 仅供参考 该表是从报告工具自动生成的 字符串操作 或任何 Excel 函数可以提供帮助吗 希望知道如何解决这个问题的人可以给我一
  • 在 VBA 中循环合并单元格

    是否可以循环遍历合并的单元格vba questions tagged vba 我的范围内有 6 个合并单元格B4 B40 我只需要这 6 个单元格中的值 6 次迭代 上面的答案看起来已经让你排序了 如果您不知道合并的单元格在哪里 那么您可以
  • VBA XML V6.0 如何让它等待页面加载?

    我一直在努力寻找答案 但似乎找不到任何有用的东西 基本上 我是从一个网站上拉取的 当您在该页面上时 该网站会加载更多项目 我希望我的代码在加载完成后提取最终数据 但不知道如何让 XML httprequest 等待 Edited Sub p
  • Word通过vba宏删除tabe列出现错误

    我想将excel中的数据复制到word表中 然后从表中删除一些列 我可以将数据复制到表中 但是当我删除列时会出现错误 无法访问此集合中的各个列 因为该表具有混合的单元格宽度 我的代码 Public Tbl1 As Table Sub cal
  • 我可以用文本框设置变量名称吗? excel

    我可以使用 TextBox Vba Excel 设置变量的名称吗 我必须以在文本框中写入组名称并单击命令按钮的方式输入新的产品组 代码必须从文本框中获取字符串 并将该字符串设置为新创建的数组的名称 我只想在运行时创建一个新变量 或数组 据信
  • 在Google电子表格中划分整列

    我是 Google 电子表格的一个相对较新的用户 我希望 B 列中的每个单元格都是 A 列 同一行 中内容除以 5 的结果 B1 B2 B3 等 商 应为 A1 A2 A3 等 被除数 除以 5 除数 在示例中 B1 A1 5 我知道一项一
  • 如何使用VBA根据条件删除Excel中的行?

    我目前正在构建一个宏来格式化数据表并删除不适用的数据行 具体来说 我希望删除列 L ABC 的行以及删除列 AA DEF 的行 到目前为止 我已经实现了第一个目标 但还没有实现第二个目标 现有代码是 Dim LastRow As Integ

随机推荐

  • 如何从 openssl 生成的密钥生成 X.509 证书

    我有一个在 ec2 实例上运行的 Web 服务器 该实例在内部调用使用 Spring Boot 构建的 REST 服务器 现在 我正在尝试让此 REST 服务器在 SSL 下运行 这是我到目前为止所做的 1 使用此命令创建 CSR 和密钥文
  • 我该如何解决这个错误?字段从未分配并且始终具有空值[重复]

    这个问题在这里已经有答案了 我创建了 4 个 C 脚本 当我运行 2d unity 游戏时 我在控制台中看到此警告 Assets Scripts GameHandler cs 7 34 警告 CS0649 字段 GameHandler ca
  • 使用 spring-data-rest 定义路径“/{resourcename}/search/”的自定义方法

    我很困惑 我无法找到如何将自定义 搜索 方法与在 spring data rest 的帮助下加载的方法一起定义 您能回答我吗 该框架是否具有 开箱即用 的可能性 如果有的话 你能告诉我 在哪里可以找到它吗 为了更深入地了解我的情况 我描述了
  • Meteor.http.call 不允许 Access-Control-Allow-Origin

    当我尝试使用 Meteor 调用外部服务器进行 JSON 查询时Meteor http call GET 方法我收到错误消息 Access Control Allow Origin不允许 如何允许我的 Meteor 应用程序向其他服务器发出
  • Rails:最后以空值排序

    在我的 Rails 应用程序中 我多次遇到一个问题 我想知道其他人是如何解决的 我有某些记录 其中值是可选的 因此某些记录具有值 而某些记录对该列为空 如果我在某些数据库上按该列排序 则空值首先排序 而在某些数据库上 空值最后排序 例如 我
  • 使用假 DbContext 和 Autofixture 以及 Moq 进行测试

    所以请遵循这个例子 example http romiller com 2012 02 14 testing with a fake dbcontext 以及如何制作一个假的 DBContext 来测试我的测试 使用这个工作正常 Test
  • sqlite python 插入

    我以前问过类似的问题 这里是我想要实现的目标的详细解释 我有两个 sqlite 表table1 是标准表 具有服务器 id 状态等字段 table2 具有服务器 id 状态 数字 日志文件等字段 Table2 为空 Table1 有值 我正
  • 获取连接的mysql数据库名称(JDBC)

    如何从连接对象中获取数据库名称 try this ds DataSource new InitialContext lookup java comp env jdbc amger catch NamingException ne Conne
  • 使用 ZXing 和 ZBar 的 GS1 应用程序标识符数据中缺少 AIM 符号标识符

    我正在尝试验证使用 ZXing 或 ZBar 扫描的 GS1 条形码 这GS1 一般规格 http www gs1 org docs gsmp barcodes GS1 General Specifications pdf7 8 中说 GS
  • 验证:如何检查特定错误

    我知道如何检查属性是否有错误 post errors title any 是否可以检查哪个验证失败 例如 唯一性 最近我遇到了一种情况 我需要同样的东西 用户可以从一个表单一次添加 编辑多个记录 由于在验证时并非所有记录都已写入数据库 我无
  • iOS 应用程序因 [UIFeedbackGenerator _autoDeactivate] 崩溃

    我收到了来自 Crashlytics 的以下报告 我没有打电话 UIFeedbackGenerator autoDeactivate 我 也许某个图书馆正在这样做 我做了一些研究 但找不到任何有用的信息 有谁知道这个崩溃报告是什么意思 谢谢
  • 如何保证mongoDb中数据的完整性?

    我正在尝试从关系数据库 mysql 数据迁移到nosql mongoDb 但是我如何确保 mongodb 中的数据完整性 我发现我们无法在服务器端做到这一点 我应该在应用程序端使用什么来处理数据完整性 例如 我有两个表 user 和 tas
  • ActionBarActivity getSupportActionBar().hide() 抛出 NullPointerException

    Call if getSupportActionBar null getSupportActionBar hide 要不就 getActionBar 在 android support v7 app ActionBarActivity 我得
  • RSpec 失败:迁移后找不到表...?

    我有一个带有一个模型的裸轨 3 应用程序 使用生成rails g model User 我添加了一个工厂 使用factory girl rails Factory define user do f f email email protect
  • AngularJS 中的“命名空间”服务

    AngularJS 如何处理服务名称之间的冲突 例如 如果我声明了两个模块 每个模块都包含一个名为 foo 的服务 如果我想创建可重用模块或想避免与其他第三方模块发生冲突 命名空间 服务的好方法是什么 截至目前 AngularJS 不处理服
  • Android面向对象编程

    我正在使用 Eclipse 在 Android 中进行一些基本编程 我目前正在翻阅一本书并使用书中编写的一些示例代码 我注意到 在这本书中 迄今为止的所有示例都在主要活动中进行 我不认为这是很好的面向对象编程实践 因为我来自传统的 Java
  • Linux 与 Windows std::map 赋值构造函数(为什么有这样的差异?)

    我在 Linux Ubuntu 中编写的 C 应用程序中目睹了一些意外行为 我将构造一个带有参数的对象 然后使用赋值运算符将该对象的副本放入 std map 中 我写了一个简单的程序来演示这种情况 include
  • 是否只有当 Maven 中的特定配置文件处于活动状态时才可以使用代理?

    我想仅在特定配置文件处于活动状态时使用代理 为了实现这一点 我的猜测是参数化
  • 当我在 MATLAB 中循环绘图时如何给出不同的颜色?

    我有一些数据说 X 的大小为 100 2 该 X 由 10 个类别的数据组成 一组 10 个 现在我想查看每个类别的数据模式 为此 我需要为每个类别分配不同的颜色 我正在尝试循环而不是绘制 10 个不同的图 我尝试了以下 hold on f
  • vba 在非连续范围内循环

    我的行有一个不连续的范围 myRange 的示例地址 2 2 4 205 214 214 我想访问该范围内的特定行和列 我已经尝试过以下方法 获取范围内第2行第1列的值 myRange rows 2 Cells 1 Value 但是 这给了