Excel VBA For-Next 循环将数据从一个 WB 提取到另一个 WB

2023-12-05

我正在开发一个 for 循环,该循环根据第 12 列中等于“Airfare”的字符串提取整行数据。

这个想法是复制第 12 列 (EXPENSE_TYPE) 是机票的数据行并将其粘贴到第二个工作簿中。

我的代码(如下)未正确循环所有 120 行数据。当我运行宏时,它仅提取满足我的条件的第一行数据。如果您能找到我的问题,请告诉我。谢谢!

Sub exportDataToOtherWorkbook()
Dim lastRow As Long
Dim i As Long
Dim p As Integer
Dim q As Integer
Dim erow As Long

lastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row

For i = 2 To lastRow
    If Cells(i, 12) = "Airfare" Then
    Range(Cells(i, 1), Cells(i, 16)).Select
    Selection.Copy


Workbooks.Open Filename:="C:\users\andrew.godish\Desktop\Practice Files\masterPracticeExtractDataWBtoWB.xlsx"

p = Worksheets.Count
    For q = 1 To p
        If ActiveWorkbook.Worksheets(q).Name = "Sheet2" Then
        Worksheets("Sheet2").Select
        End If
    Next q

    erow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row

    ActiveSheet.Cells(erow, 1).Select
    ActiveSheet.Paste
    ActiveWorkbook.Save
    Application.CutCopyMode = False
    End If
Next i
End Sub

我建议使用一种替代方法来循环遍历每一行。循环的效率非常低,如果可能的话应该避免。

假设您的数据存储在要从中复制的工作簿的“Sheet1”(进行更改以满足您的要求)上,您可以过滤第 12 列并使用更简单的命令复制所有数据,如下所示:

Sub Test()

        'Declare source and destination variables
        Dim sourceWB As Workbook, destWB As Workbook

        Set sourceWB = ThisWorkbook

        'Open the workbook to copy the data TO
        Workbooks.Open Filename:="C:\users\andrew.godish\Desktop\Practice Files\masterPracticeExtractDataWBtoWB.xlsx"
        Set destWB = ActiveWorkbook

        sourceWB.Sheets("Sheet1").Range("A1:P1").AutoFilter Field:=12, Criteria1:="Airfare"

        'The first offset on the copy is to avoid copying the headers each time, the second offset is to find the last row in the
        'list then offset to the next row. Copies data to new workbook
        sourceWB.Sheets("Sheet1").AutoFilter.Range.Offset(1).Copy Destination:=destWB.Sheets("Sheet2").Range("A" & Rows.Count).End(xlUp).Offset(1)

        destWB.Save

        'Clear the filter from the source worksheet
        If sourceWB.Sheets("Sheet1").AutoFilterMode Then sourceWB.Sheets("Sheet1").ShowAllData

End Sub

我知道这并不能直接回答你的问题,但我认为这可能是一种更简单、不易出错的方法。

所以该方法遵循以下步骤:

  • 打开目标工作簿
  • Filter Sheet1第 12 栏“机票”(请务必更改Sheet1如果需要的话)
  • 将筛选后的范围复制并粘贴到目标工作表和工作簿
  • 删除应用于源工作表中第 12 列的筛选器

令人困惑的部分可能是使用Offset(1)。我在副本上使用它来避免复制列标题(它将复制区域向下偏移一行)。我在目标上使用它以避免覆盖最后一行(我们必须找到最后使用的行,然后向下递增一行)。

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

Excel VBA For-Next 循环将数据从一个 WB 提取到另一个 WB 的相关文章

  • 为什么 CSV 文件中的多行单元格在 Excel 中每行末尾都显示有问号?

    我目前正在开发一个项目 我们希望允许用户将数据导出到 CSV 我们提供的一些数据在单个单元格中具有多个值 因此我们使用标准 CSV 方法将每个值放在自己的行上 Column A Column B Column C Value A Value
  • 出现错误时如何中断?

    我有一个函数 其中某个地方有一些错误导致它返回 VALUE当我尝试在Excel中执行它时 我不知道错误在哪里 单步调试代码也很乏味 所以我希望调试器在发生错误时立即中断 我尝试去Tools gt options gt General gt
  • 将 Excel 模板 (xltx) 作为 Excel 模板而不是工作簿打开

    我正在尝试编写一行代码来打开 Excel 模板 xltx 文件作为 Excel 模板文件而不是新工作簿 我只是想让用户查看和编辑他们在我们网络上的库文件夹中的模板 然而 我尝试过的所有操作都会打开一个新的工作簿而不是模板 我尝试过互操作 W
  • Excel IE 自动化识别“css”元素

    仍然在抓取网站 从网页打印等方面进行掠夺 但遇到了一个障碍 我希望有人可以帮助我 下图显示了我想要激活的选项卡 我有代码可以到达那里 但无法激活该选项卡 虽然最后一行代码可以在我的台式电脑上运行 但我无法让它在我的其他电脑上运行 我可能可以
  • 使用 C# 的高级过滤器 excel

    我需要在Excel工作表中做一个过滤器 我想知道是否可以做这样的过滤器 List
  • 用于替换格式但保留单元格值的 VBA:部分解决

    我正在尝试组合 VBA 来搜索特定的单元格格式 然后更改该单元格格式 我从这篇文章中得到了灵感 Excel VBA 值替换后仍保持字符串格式 https stackoverflow com questions 25825136 excel
  • 在vba中为图例设置颜色代码

    我在每个工作表中都有数据透视表 我必须对它们进行比较 但每个工作表中图例的颜色都不同 如何设置颜色 例如 如果我的图例条目是 ISO 我希望它始终为 蓝色 如果它是 LAT 我希望它在每张纸中都为 红色 这可以通过操纵来完成Series中的
  • 将值添加到 R 中 for 循环内的向量

    我刚刚开始学习 R 我编写了这段代码来学习函数和循环 squared lt function x m lt c for i in 1 x y lt i i c m y return m squared 5 NULL 为什么这个返回NULL
  • C# 如何判断单元格中的公式是否有错误

    在 Excel 公式中 您可以使用 ISERR A1 or ISERROR A1 在 VBA 宏中 您可以使用IsError sheet Cells 1 1 但是使用 VSTO Excel Addin 项目我没有在 Microsoft Of
  • Excel 2010 中隐藏行的宏

    我对 VBA 编程有点陌生 我在互联网上阅读了一些内容 但找不到我需要的内容或无法使其正常工作 我的问题 在工作表 表 1 的单元格 B6 中 给出了项目将被利用的年数 在工作表 sheet 2 和 sheet 3 中 我制作了 50 年的
  • Excel 仅粘贴特殊使用值,还将值的数据类型与值一起复制到目标单元格中

    我一直在尝试更多地了解 Excel 单元格 特别是它们的数据类型 如果有人对细节感兴趣 我的调查位于下面的编号点中 我的结论被标记为 A 到 D 我真的很感兴趣是否有人有什么可以补充的 答 每个 Excel 单元格都有一个属性 用于定义它将
  • MS Access:将组合框中选定的条目插入表中

    这是我使用 MS Access 所做的一个示例 我有一个包含人名的表格和两个用于添加电话号码的文本字段 我创建了一个包含名称的列表框 我设法将列表框中选定的姓名和文本字段 Tel1 和 Tel2 中的电话号码插入表 ContactTable
  • 是否可以编写自定义 Power Query 连接器?

    在 来自其他来源 下的 Power Query 中 我们看到许多专业提供商 Facebook SAP SalesForce 等 我有兴趣编写一个自定义提供程序来访问无法通过任何内置连接器使用的本地专有数据存储 我知道 访问没有支持连接器的数
  • 在 python for 循环中一次运行 3 个变量。

    python 2 7 中具有多个变量的 For 循环 Hello 我不确定如何解决这个问题 我有一个功能可以访问网站并下载 csv 文件 它以特定格式保存 csv 文件 name uniqueID dataType csv 这是代码 imp
  • Hyperlinks.add VBA [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在用 VBA 编程 我想使用创建超链接hyperlink addActiveSheet 对象的方法 但是它不起作用 这是我的代码 set
  • 在打开的Word文档中找到未知的姓名和姓氏,将其复制并使用excel VBA粘贴到excel .activesheet中的单元格A12中

    你好 Stackoverflow 社区 我的目标是编写一个宏 在之前打开 活动的 Word 文档中查找未知姓名 或两个名字都写成 Firstname Secondname 和姓氏 或两个姓氏写成 Firstsurname Secondsur
  • 将一个大的 xlsx 文件导入到 R 中?

    我想知道是否有人知道从 大 xlsx 文件 20Mb 导入数据的方法 我尝试使用 xlsx 和 XLConnect 库 不幸的是 两者都使用 rJava 我总是收到相同的错误 gt library XLConnect gt wb lt lo
  • 使用 python 只读取 Excel 中的可见行

    我想只读取 python 中 Excel 工作表中的可见行 输入 Excel表 所以当我过滤时 作为 python 中的输出 在本例中我将仅获得可见数据 1 行 这是我的代码 from openpyxl import load workbo
  • 修剪工作簿中的所有单元格(VBA)

    我尝试向一直在开发的 Excel 加载项添加功能 该功能会修剪已用单元格末尾的前导空格 甚至可能解析文本 我需要这样做的原因只是为了将其变成超链接我已经在工作了 但是那部分很好 这是我到目前为止所尝试的 我已经修剪了active works
  • 有没有办法破解 Excel VBA 项目的密码?

    我被要求更新一些 Excel 2003 宏 但 VBA 项目受密码保护 而且似乎缺少文档 没有人知道密码 有没有办法删除或破解 VBA 项目上的密码 你可以直接尝试这个VBA不需要十六进制编辑的方法 它适用于任何文件 xls xlsm xl

随机推荐

  • 保护文件上传

    几年前 我在学习期间为一家小公司编写了一个网站 我开始意识到我的安全技能并没有达到应有的水平 最近该网站遭到黑客攻击 并且使用用于图像上传的表单上传了恶意 php 代码 此后我进入了 NET 世界 虽然我知道如何保护 NET 中的文件上传
  • 如何在 Internet Explorer 中使用控制台日志记录?

    有 IE 的控制台记录器吗 我正在尝试将一堆测试 断言记录到控制台 但我无法在 IE 中执行此操作 您可以通过启动 开发人员工具 F12 来访问 IE8 脚本控制台 单击 脚本 选项卡 然后单击右侧的 控制台 在 JavaScript 代码
  • 使用密码配置跳转/堡垒主机

    我有三个主机 我的本地 ansible 控制器 跳跃 堡垒主机 jump host 对于我的基础设施 我想要针对其运行 ansible 任务的目标主机 target host 只能通过以下方式访问jump host 作为我的库存文件的一部分
  • 通过 Microsoft Graph API 创建 Excel 文件

    有谁知道如何通过 MS Graph API 创建 excel 和 ppt 文件 我们正在尝试利用 MS Graph API 通过单击按钮来创建 word excel ppt 文件 虽然我们找到了如何创建 word 文件 但即使 API 成功
  • Java Final——一个永恒的谜

    suggestBox addKeyUpHandler new KeyUpHandler public void onKeyUp KeyUpEvent event if event getNativeKeyCode KeyCodes KEY
  • 找不到列“dbo”或用户定义函数或聚合“dbo.FN_Split”,或者名称不明确

    我有以下函数 它接受 CSV 和分隔符并将其拆分 ALTER FUNCTION dbo FN Split String varchar max Delimiter char 1 returns temptable TABLE orderId
  • :app:transformClassesWithMultidexlistForDebug 失败

    我已经尝试过以下链接 http developer android com intl es tools building multidex html 意外的顶级异常 com android dex DexException 多个 dex 文
  • 使用 ssh 端口转发运行 Erlang Observer

    我有一个远程 Erlang 节点和本地开发人员的 PC 我想启动本地节点 email protected 启动观察者 调用c nl 1和其他调试操作 我写了这个 bin sh export ERL EPMD PORT 43690 PORT
  • 在 Cocoa 应用程序中每晚使用 WebKit.framework?

    我目前正在 Cocoa 应用程序中使用 WebView 我还想在 webview 特别是 FileReader 中使用 HTML5 文件 API FileReader 在最新版本的 WebKit 中不受支持 但在 WebKit nightl
  • 如何在jsp中对url参数进行加密/编码

    我想对一个URL变量进行加密 这样用户在jsp中传递的信息就无法看到或修改 这是一个示例 URL localhost somewebpage name jsp id 1234 tname Employee March 2013 这里我想对参
  • Spring MVC - HTTP 状态 500 - Servlet loginDispacher 的 Servlet.init() 引发异常

    我做了一个简单的程序 但出现以下错误 我正在使用 Eclipse Kelper 和 Tomcat 7 0 尝试了很多事情 但没有任何对我有用 HTTP 状态 500 servlet loginDispacher 的 Servlet init
  • 根据另一个数据帧的多个列条件创建列

    假设我有两个数据框 条件和数据 import pandas as pd conditions pd DataFrame class 1 2 3 4 4 5 5 4 4 5 5 5 primary lower 0 0 0 160 160 16
  • Python SqlAlchemy - AttributeError:映射器

    基于我的模型 from sqlalchemy ext declarative import declarative base from sqlalchemy import Column Integer String ForeignKey f
  • iOS:如何查询WiFi状态

    是否可以以编程方式查询 iOS 上的 WiFi 状态 启用 禁用 当启用 WiFi 并且设备未连接到任何网络时 查询应返回 true EDIT 我知道提供的功能Reachability类 据我了解 它无法识别 WIFI 的已启用但未连接状态
  • while 循环 PHP get_result 不起作用

    我正在尝试使用 MySQl 准备好的语句从数据库中获取行并获取结果 然而这不起作用 请有人能看到我哪里出了问题吗 我已经尝试了几个小时的解决方案 但无法使其发挥作用 该页面只是不加载 就好像查询失败一样 tag trim GET tag s
  • 部署后在django中使用scipy.stats.stats

    我正在为一个严重依赖 scipy stats stats scipy 版本 0 9 0 的包创建一个由 django 支持的 1 3 接口 称为ovl 在早期开发阶段 使用 djangos 自己的开发服务器 这没有问题 使用apache d
  • 带有 WSDL for R 的 SOAP 客户端

    我正在尝试使用 SSOAP 包为 R 的 SOAP 客户端编写代码 这是我最初的代码 wsdl lt getURL http sistemas cvm gov br webservices Sistemas SCW CDocs WsDown
  • 如何在 WinForms 中绘制形状[重复]

    这个问题在这里已经有答案了 我正在尝试编写类似绘画的程序 您可以通过选择所需的形状来绘制填充形状 单击图片框并拖动鼠标以获得所需的尺寸 但THIS当我拖动时可能会发生 当我使用refresh 之前绘制的形状会自行删除 我应该怎么做才能绘制填
  • 无法创建圆角对话框(Android-Eclipse)

    我正在尝试为我的应用程序的对话框制作自定义对话框形状 我已经搜索这个主题几个小时了 但我找到的解决方案对我不起作用 这就是为什么我向你询问我自己的问题 我想要一个带有圆角并显示标题的对话框 然后是一个带有一些文本的 ScrollView 唯
  • Excel VBA For-Next 循环将数据从一个 WB 提取到另一个 WB

    我正在开发一个 for 循环 该循环根据第 12 列中等于 Airfare 的字符串提取整行数据 这个想法是复制第 12 列 EXPENSE TYPE 是机票的数据行并将其粘贴到第二个工作簿中 我的代码 如下 未正确循环所有 120 行数据