Excel VBA 调试:循环不搜索整个范围

2024-01-10

我编写了一个基本宏来搜索范围(在一张纸中),然后根据保存选择值的第三张纸复制所选单元格(到另一张纸)。我已经使用了 i = x to y 的循环,但看起来宏正在跳过一些行!???! 即,如果第 1 行到第 4 行有 4 个要复制的有效值,则宏仅复制第 2 行和第 4 行中的值(放弃有效单元格 1 和 3)。这是代码:

Sub XXXXX()
Dim i As Integer
Dim PasteSheet As Worksheet: Set PasteSheet = Sheets("Sheet1")
Dim CopySheet As Worksheet: Set CopySheet = Sheets("Sheet2")
Dim SearchSheet As Worksheet: Set SearchSheet = Sheets("Sheet3")
Dim LookupID, LookupID_SearchRange, CopyValueID, CopyValueID_Paste As Range

For i = 7 To 2000 'I've also used the (Step 1) option with no success
RowCount = Application.WorksheetFunction.CountA(PasteSheet.Range("A:A")) + 1 'finds the last cell to be used for copy

Set LookupID = CopySheet.Range("A" & i) 'searches all values within column A from row 7 to 2000
Set LookupID_SearchRange = SearchSheet.Range("A:A") ' Seaches if the values from Sheet3 are present in Sheet 1
Set CopyValueID = CopySheet.Range("X" & i) 'counter that follows the same search on A but selects values on X
Set CopyValueID_Paste = PasteSheet.Range("A" & RowCount) 'When it finds the ID, it copies some cell to the last row in Sheet2
      ' Initially  there was an additional RowCount (+1) for CopyValueID. Corrected based on answers for future refrence of the cleaned code.
If Not IsError(Application.Match(LookupID, LookupID_SearchRange, 0)) Then
    If CopyValueID.Value <> "" Then
        CopyValueID.Copy
        CopyValueID_Paste.PasteSpecial xlPasteValues
    End If
End If
Next i

End Sub

为什么代码从第 2 行和第 4 行选择并复制值(看起来像是使用 +1 步骤?) 谢谢。


你正在定义RowCount as CountA + 1:

RowCount = Application.WorksheetFunction.CountA(PasteSheet.Range("A:A")) + 1 'finds the last cell to be used for copy

然后您实际上在要粘贴的行中再次添加一个:

Set CopyValueID_Paste = PasteSheet.Range("A" & RowCount + 1) ' When it finds the ID, it copies some cell to the last row in Sheet2

我认为您因此会覆盖您的结果?删除其中之一+1应该可以解决问题。

社论:很高兴看到有人定义他们复制的范围,而不是使用一堆Select的......绝对是更好的编码风格!

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

Excel VBA 调试:循环不搜索整个范围 的相关文章

  • 当时间为 00:00 时,Pandas 读取 excel 返回类型对象

    在更新版本的 Pandas 中 我使用的是 1 2 3 当从 Excel 文件读取时间时 时间为 00 00 00 时会出现问题 下面的脚本 其中 filepath 是我的 Excel 文件的路径 其中包含一个标题名为 Time 的列 im
  • VBA 中的多线程

    这里有人知道如何让VBA运行多线程吗 我正在使用 Excel 无法用 VBA 本地完成 VBA 构建在单线程单元中 获得多个线程的唯一方法是使用 VBA 之外的其他具有 COM 接口的东西构建 DLL 并从 VBA 调用它 信息 OLE 线
  • Pandas:向量化局部范围操作([i:i+2] 行的最大值和总和)

    我希望在数据帧中的每一行的局部范围内进行计算 同时避免速度缓慢for环形 例如 对于下面数据中的每一行 我想找到未来 3 天内 包括当天 的最高气温以及未来 3 天内的总降雨量 Day Temperature Rain 0 30 4 1 3
  • Scrapy - 持续从数据库中获取要爬取的url

    我想不断地从数据库中获取要爬行的网址 到目前为止 我成功地从基地获取了 url 但我希望我的蜘蛛继续从该基地读取 因为该表将由另一个线程填充 我有一个管道 一旦爬行 工作 就会从表中删除 url 换句话说 我想使用我的数据库作为队列 我尝试
  • 在合并的单元格中选择、插入照片并将其居中

    我是一名研发面包师 正在为我的团队制作食谱模板 模板中有照片 但我需要轻松地允许他们单击一个按钮 打开照片的文件选择器 然后将该照片放在合并的单元格中 我其实不太擅长做这个 Sub InsertPhotoMacro Dim photoNam
  • Excel FILTER() 对于空白单元格返回 0

    我怀疑以前有人问过这个问题 但我找不到 FILTER 即使指定了返回字符串 通常也会为空白行返回 0 Using filter 我经常收到空单元格的 0 返回值 假设 A 列中有 6 行数据 abc xyz abc xyz abc If I
  • awk 在循环中使用时不打印任何内容[重复]

    这个问题在这里已经有答案了 我有一堆使用 file 1 a 1 txt 格式的文件 如下所示 A 1 B 2 C 3 D 4 并使用以下命令添加包含每个文件名称的新列 awk print FILENAME NF t 0 file 1 a 1
  • 我可以获取VBA代码中的注释文本吗

    可以说我有以下内容 Public Sub Information TEST End Sub 有没有办法得到 TEST 结果 不知何故通过VBA 例如 在 PHP 中 有一个获取注释的好方法 这里有什么想法吗 编辑 应该有办法 因为像 MZ
  • 如何在Power Query中对N列求和

    我的数据每月都会更新 因此我尝试创建一个强大的查询表 该表将显示我创建的枢转 N 列的总和 但我似乎不知道如何在强大的查询中执行此操作 我目前有这个代码 旋转后 创建要求和的列的列表 添加索引列以限制每行 添加一列 该列对该行的列进行求和
  • 标志状态的 VBA 替换

    根据文档 Outlook 中的 MailItem FlagStatus 属性是已弃用 https msdn microsoft com en us library microsoft office interop outlook maili
  • 表达式中的 Python 'in' 关键字与 for 循环中的比较 [重复]

    这个问题在这里已经有答案了 我明白什么是in运算符在此代码中执行的操作 some list 1 2 3 4 5 print 2 in some list 我也明白i将采用此代码中列表的每个值 for i in 1 2 3 4 5 print
  • 获取当前 VBA 函数的名称

    对于错误处理代码 我想获取发生错误的当前 VBA 函数 或子函数 的名称 有谁知道如何做到这一点 编辑 谢谢大家 我曾希望存在一个未记录的技巧来自行确定函数 但这显然不存在 我想我会保留当前的代码 Option Compare Databa
  • Android Excel CSV 的 MIME 数据类型是什么?

    我尝试了 text csv 甚至 application vnd ms excel 但 Excel 不会显示在选择列表中 很多其他应用程序也可以 void shareCsv Uri uri Context context Intent in
  • Javascript 循环内的事件处理程序 - 需要闭包吗?

    我正在使用一些我从别人那里接管的 html 和 Javascript 代码 该页面每十秒重新加载一个数据表 通过异步请求 然后使用一些 DOM 代码重新构建该表 有问题的代码看起来像这样 var blah xmlres getElement
  • Excel 2003 中的 IFERROR

    我通过阅读几个线程了解到IFERROR在 Excel 2003 中由IF ISERROR 我尝试从 Excel 2007 复制的代码是 IFERROR A1 我知道必须有一个简单的解决方案将其转换为IF ISERROR 但我没有任何效果 意
  • 如何使用 VBA 添加 MS Outlook 提醒事件处理程序

    我想扩展 MS Outlook 以便当弹出日历提醒时 我可以运行一个可以运行外部程序 如批处理脚本 的 VBA 挂钩 就我而言 我想将提醒 转发 到 Linux 桌面 因为我在这两种环境中工作 并且 Windows 桌面并不总是可见 我看到
  • 在 Excel 中使用 VBA 设置图像透明度

    有没有办法使用 VBA 脚本对图像应用一些透明度 我录制了一个 宏 但似乎没有录制艺术效果 我已经找到了如何制作形状 但没有找到图像 这需要几个步骤 将自选图形 如矩形 放置在工作表上 使用以下方法将您的实际图片嵌入矩形中 ShapeRan
  • flex 3 迭代对象值

    我有一个代表数据库表的对象 我想迭代这个对象并打印每个值 我可以用什么来做到这一点 我想在我的mxml而不是actionscript中执行此操作 对于每个对象属性我想创建一个输入字段 查找有关 Flex 3 循环的文档 如果你这样做 你会发
  • 总是使用 Final?

    我读过 将某些东西做成最终的 然后在循环中使用它会带来更好的性能 但这对一切都有好处吗 我有很多地方没有循环 但我将 Final 添加到局部变量中 它会使速度变慢还是仍然很好 还有一些地方我有一个全局变量final 例如android Pa
  • 在 VBA 中捕获 shell 命令的输出值?

    发现这个功能http www cpearson com excel ShellAndWait aspx http www cpearson com excel ShellAndWait aspx 但我还需要捕获 shell 的输出 有什么代

随机推荐

  • 在 C 中实现 SB 型 riscv 指令

    我遇到了一些问题 我尝试将 32 位二进制解码为 RISCV 架构集中的 SB 类型指令 我已经移动了操作码 imm rs1 rs2 和 rd 值 但未能获得正确的 IMM 值 例如对于以下 32 位二进制 1111111000000111
  • 运行时获取注解信息

    我想知道有没有什么方法可以在运行时获取类的注释信息 因为我想获取具体注释的属性 Example class TestMain Field store Store NO private String name private String p
  • CSS :nth-of-type() 和 :not() 选择器?

    我并排浮动了 25 宽的文章 我正在添加一个clear both每四个元素之后 但是我需要在元素之间插入图形分节符 它必须在 ul 为了有效 我将 分节符 下面示例中的第一个 li 项 包装成 li 以及 ul li class year
  • ValueError:预期的 2D 或 3D 输入(获得 1D 输入)PyTorch

    class VAE torch nn Module def init self input size hidden sizes batch size super VAE self init self input size input siz
  • cspack 行为与 msbuild 不同

    使用 Visual Studio 2012 Azure SDK 2 1 我试图找出创建 csx 文件夹以在 azure 模拟器中运行的最佳方法 我的理解是 在打包 Azure 项目之前 不会创建 csx 文件夹 我可以从 Visual St
  • 无法在 iOS 上使用自定义 @protocol

    注意 以下是使用启用了自动引用计数 ARC 的 iOS 我认为 ARC 可能与它不起作用有很大关系 因为这是根据我通过谷歌找到的示例设置的 我正在尝试创建一个协议来通知委托用户从 UITableView 选择的文件名 文件列表视图控制器 h
  • 离子搜索栏搜索不适用于 cypress {enter}

    我有一个 Ionic 6 应用程序 我正在使用 cypress 9 3 1 对其进行测试 在我的应用程序中 我使用像这样的离子搜索栏
  • 插入...值(SELECT ... FROM ...)

    我在尝试着INSERT INTO使用另一个表的输入的表 尽管这对于许多数据库引擎来说是完全可行的 但我似乎总是很难记住正确的语法SQL当天的发动机 MySQL http en wikipedia org wiki MySQL Oracle
  • WPF DPI 问题

    我开发了一个应用程序 在我的计算机上看起来很棒 但当我将其安装到具有不同分辨率和 DPI 设置的其他计算机上时 它看起来很糟糕 控件相互重叠 这真是太痛苦了 有人对如何避免这种情况有什么建议吗 Windows 无法知道屏幕的本机 DPI 每
  • Python3 - 无法读取 docx、odt 文件 - UnicodeDecodeError:“utf-8”编解码器无法解码位置 10 中的字节 0xea:无效的连续字节

    我正在尝试将大 docx 文件拆分为小文件 为此 当读取文件时python3 6使用以下代码 with open h docx r as f a f read 它抛出这个错误 Traceback most recent call last
  • Linux 中的沙箱

    我想创建一个 Web 应用程序 允许用户上传一些 C 代码 并查看其执行结果 代码将在服务器上编译 用户不受信任 这显然会带来巨大的安全隐患 所以我需要为应用程序创建某种沙箱 在最基本的层面上 我想将对文件系统的访问限制为某些指定的目录 我
  • Spring JPA 中的 @Entity 是什么?

    具体来说 我指的是javax persistence Entity 根据我将鼠标悬停在上面时显示的文档 在 VS Code 中它指出 指定该类是一个实体 该注解适用于 实体类 对于 Spring JPA 来说 类是实体意味着什么 Entit
  • GetComInterfaceForObject 是否固定对象?

    使用 GetComInterfaceForObject 并将返回的 IntPtr 传递给非托管代码是否会阻止托管对象在内存中移动 或者 clr 是否以某种方式维护该 ptr 请注意 非托管代码将在程序的生命周期内使用它 并且我需要确保托管对
  • 在单个测试类中测试接口的多个实现

    我需要通过班级级别的测试数据但是Theory and InlineData属性只能用在方法上 public class ContainerTests TestFixture private IContainer container publ
  • 在 GPU 上预加载整个数据集以训练 Keras 模型

    我有一个特定的情况 其中网络相对较小 为了收敛和泛化问题 我应该保持较小的批量大小 例如 256 这导致每个时期要处理数百个批量 不幸的是 在这种情况下 批量 加载和损失计算成为瓶颈 如timeline工具告诉我 在 TensorFlow
  • spring可以支持多应用共享成员资格吗?

    spring 框架是否支持共享公共用户群的多个应用程序 例如2 个独立的 Web 应用程序以某种方式连接到单个数据库以获取用户相关信息 用户名 密码 甚至角色 这个想法是这样的 类似于ASP NET 会员资格 http msdn micro
  • 图像隐写术抵御各种攻击的最佳实践是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我对此真的很好奇 因为现在每个频道都可以以某种方式修改或压缩图像 这可以被视为对隐写术的攻击 我们可以将隐写术分为两种基本类型 第一种在图像的空
  • ClassNotFound launchig 地图活动在 Android 库中声明

    当尝试启动从 MapActivity 派生并在 Android 库项目中声明的活动 TestLocationActivity 时 我收到此异常 09 08 09 29 45 357 ERROR AndroidRuntime 7502 jav
  • 是否可以更改Matlab绘图功能中的标记? [复制]

    这个问题在这里已经有答案了 我正在尝试使用 matlab 绘图函数来创建绘图 然而 可用的标记是有限的 例如 plot x y o 将用圆形标记绘制 但是 如果我想要带有箭头符号或字母的标记 这是不可能的 有谁知道有什么方法可以做到这一点
  • Excel VBA 调试:循环不搜索整个范围

    我编写了一个基本宏来搜索范围 在一张纸中 然后根据保存选择值的第三张纸复制所选单元格 到另一张纸 我已经使用了 i x to y 的循环 但看起来宏正在跳过一些行 即 如果第 1 行到第 4 行有 4 个要复制的有效值 则宏仅复制第 2 行