对于每个控制变量必须是变量或对象

2023-11-21

这里对 VBA 真的很陌生......我环顾四周并尝试拼凑一些代码来满足我的需求。我认为已经差不多了,但我遇到的错误可能很容易克服,但我不知道如何克服。

该代码查看当前工作表 (STOCK),并从单元格 A2 中获取“目标”文本值。然后,它在另一个工作表“其他”中搜索命名范围。如果它确定“Other”中的一个单元格(“cand”)等于目标值,则“True”值将应用于 STOCK 工作表中原始目标同一行上的 G 列。

希望这是有道理的。我已经复制了代码,这可能会让事情变得更加清晰。


Dim target As String
Dim cand As String
Dim currentrow As Integer

Sub search_named_range()

    ' This range is hard coded; we can try A:A if hard code version works '
    For Each target In Worksheets("STOCK").Range("A2:A1000")

    ' retrieve the row of the current range, for use when setting target values '
    currentrow = Range(target).Row

        ' FOR loop to search range of part numbers in Mojave '
        For Each cand In Worksheets("Other").Range("N9:N150")
            If StrConv(cand.Value, 2) = StrConv(target, 2) Then
                Worksheets("STOCK").Range("G" + currentrow) = "True"
                GoTo FORend
            End If
        Next cand

' If part is not found, do nothing and return to find next target '
FORend: Next target

End Sub
  

目前,我收到错误“对于每个控制变量必须是变体或对象”,但找不到任何地方可以解释原因。我确信这是很明显的,但如果有一只小牛的话我会非常感激。

Thanks.


不能在 For Each 中使用字符串变量。你正在使用tartget and cand作为 For Each 循环中的控制变量,但您已将它们定义为字符串。它们必须是一个对象,特别是包含您正在迭代的对象集合的对象。您正在迭代一个范围,该范围是范围的集合,因此您的控制变量需要是 Range 对象。

Sub search_named_range()

    Dim rCell As Range
    Dim rCand As Range

    For Each rCell In Worksheets("STOCK").Range("A2:A1000").Cells
        For Each rCand In Worksheets("Other").Range("N9:N150").Cells
            If StrComp(rCand.Value, rCell.Value, vbTextCompare) = 0 Then
                rCell.Offset(0, 6).Value = "True"
                Exit For 'exits the rCand For, but no the rCell one
            End If
        Next rCand
    Next rCell

End Sub

其他未纠正错误的更改:

我不知道为什么你在子外部声明你的变量,但我把它们放在里面。

你不需要定义.Cells在 For Each 行的末尾,但我喜欢这样做。你可以迭代.Rows or .Columns or .Areas有一个范围(虽然.Cells是默认值)。

StrConvert 没有任何问题,但您也可以使用 LCase() 或像我一样使用 StrComp。

由于我已经引用了当前行 (rCell) 上的单元格,因此我使用它和 Offset 来填充我想要的列。

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

对于每个控制变量必须是变量或对象 的相关文章

  • 无法摆脱脚本中的硬编码延迟

    我用 vba 结合 selenium 编写了一个脚本来解析网页中可用的所有公司名称 该网页启用了延迟加载方法 因此每个滚动中只有 20 个链接可见 如果我滚动 2 次 则可见链接数为 40 个 依此类推 该网页中有 1000 个可用链接 我
  • 将 numpy 代码点数组与字符串相互转换

    我有一个很长的 unicode 字符串 alphabet range 0x0FFF mystr join chr random choice alphabet for in range 100 mystr re sub W mystr 我想
  • 如何在Python中按AaB而不是ABa顺序对字符串进行排序

    我正在尝试对字符串进行排序 为 punnetsquare 制作基因型 我目前的实现是 unsorted genotype ABaB sorted genotype sorted list unsorted genotype sorted s
  • Excels COUNTIFS 函数中的数组作为条件,混合 AND 和 OR [重复]

    这个问题在这里已经有答案了 我已经在谷歌上搜索了一段时间 但似乎无法让它发挥作用 我使用 Excel 2010 希望混合使用 AND 和 OR 运算符来计算行数 我想做的是这样的 COUNTIFS A A string1 B B strin
  • 字符串列表,获取n个元素的公共子串,Python

    我的问题可能类似于this https stackoverflow com questions 37514193 count the number of occurrences of n length not given string in
  • string.Compare 行为

    怎么会这样呢 这是从VS2008中的立即窗口获取的 string Compare 1 string Compare 0 0 1 从言论来看字符串比较 http msdn microsoft com en us library 84787k2
  • 使用 MID、LEN 和 FIND 函数提取单元格文本的某些部分?

    我有一份 Excel 作业 但我陷入了最后部分 我被要求使用 MID LEN 和 FIND 来提取单元格内的特定字符串 我非常了解每个人的工作方式 将这三者结合起来并让它们发挥作用是我遇到的问题 我需要将城市与地址的其余部分分开 然后将其显
  • 当使用公式生成超链接时,VBA 打开 Excel 超链接不起作用

    使用公式生成的 Excel 超链接似乎存在错误 我使用的是 Excel 2010 我有一个电子表格 其中的单元格包含 URL 我的目标是执行以下两件事 将这些单元格变成超链接 创建一个键盘快捷键来打开这些超链接 这样我就不必使用鼠标了 为了
  • 用于开始和/或包含搜索的最快字符串集合结构/算法是什么

    我有以下情况 我有一个大的字符串集合 比如说 250 000 平均长度可能是 30 我要做的就是在这些搜索中进行许多搜索 大多数搜索都是 StartsWith 和 Contains 类型的 该集合在运行时是静态的 这意味着选择的集合的初始读
  • Excel工作簿关闭后反复打开

    我使用了 Application ontime 方法来调度一些宏 关闭工作簿后 它会一次又一次地打开 为了解决这个问题 我在工作簿上设置了另一个事件 BeforeClosed 现在它显示运行时错误 1004 Object Applicati
  • 将 Excel 范围转换为 VBA 字符串

    我想将给定范围内的值转换为 VBA 字符串 其中原始单元格值由任何选定的列分隔符和行分隔符分隔 分隔符可以是一个字符或更长的字符串 行分隔符是行末尾的字符串 该字符串应该像我们从左上角 从左到右 到右下角读取文本一样完成 以下是范围 A1
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • 使用for循环时如何获取前一个元素? [复制]

    这个问题在这里已经有答案了 可能的重复 Python 循环内的上一个和下一个值 https stackoverflow com questions 1011938 python previous and next values inside
  • 如果总和为 0,则查找并删除带标题的最后一列

    我想创建一个宏 查找带有标题的最后一列 并仅当该列的总和等于零时才将其删除 到目前为止 这是我尝试过的 Dim LastCol As Long Dim i As Long With ThisWorkbook Sheets Sheet1 Fo
  • Excel 工作表名称的有效字符

    在 Java 中 我们使用以下包以编程方式创建 Excel 文档 org apache poi hssf 如果您尝试设置工作表的名称 不是文件 而是内部 Excel 工作表 在以下情况下您将收到错误消息 名称超过 31 个字符 该名称包含以
  • Redim Preserve 给出“下标超出范围”

    我想要Redim Preserve一个数组我不断收到错误 下标超出范围 我知道只有最后一个维度的大小可以更改 这正是我正在做的事情 这里出了什么问题 数组的类型是Variant BmMatrix Sheets BENCH Range a60
  • 从 MS Access 调用存储过程会导致错误 3146

    当我使用下面所示的代码从 MS Access 前端调用 SQL Server 存储过程时 它停止运行并抛出运行时错误 3146 这个存储过程在 SQL Server 中工作正常 但是当我从 MS Access 运行时 它首先工作 但突然停止
  • 从迭代器外部将 StopIteration 发送到 for 循环

    有几种方法可以打破一些嵌套循环 他们是 1 使用中断 继续 for x in xrange 10 for y in xrange 10 print x y if x y gt 50 break else continue only exec
  • 如何展平解析树并存储在字符串中以进行进一步的字符串操作 python nltk

    我正在尝试从树结构中获取扁平树 如下所示 我想将整个树放在一个字符串中 就像没有检测到坏树错误一样 S NP SBJ NP DT The JJ high JJ seven day PP IN of NP DT the CD 400 NNS
  • case_when 与部分字符串匹配和 contains()

    我正在使用一个数据集 其中有许多名为 status1 status2 等的列 在这些列中 它表示某人是否豁免 完整 注册等 不幸的是 豁免投入并不一致 这是一个示例 library dplyr problem lt tibble perso

随机推荐

  • 统一更改Texture2D格式

    我有一个Textured2D已加载 表示为ETC RGB4我怎样才能将其更改为其他格式 说RGBA32 基本上我想从 3 个通道切换到 4 个通道 从每通道 4 位切换到每通道 8 位 Thanks 您可以在运行时更改纹理格式 1 创建新的
  • 使用 VueJS 在另一个窗口中打开 PDF 文件

    在我之前的 Angular 应用程序中 我能够在另一个窗口中打开我的简历 如下所示 a class link popup href Resume a 在用 Vue 重写我的网站时 我注意到它没有按预期工作 将其更改为 a class lin
  • Angular 2 agm 库用于谷歌地图按地点 ID 设置地点

    我正在页面中实现一个谷歌地图 其中将一个地点 id 传递给我 然后我需要获取这样的地点 id 并使用该标记加载地图 我正在查看文档 但不清楚如何从
  • 隐藏/禁用 Chrome PDF 查看器上的下载按钮

    我正在寻找一种方法来隐藏或禁用 Chrome PDF 查看器中显示的下载按钮 我已使用 fpdf 的保护脚本禁用了打印按钮 http www fpdf org en script script37 php 但它对下载按钮没有帮助 PDF 当
  • Clojure:实现 comp 函数

    4Clojure问题 58表述为 编写一个允许您创建函数组合的函数 参数列表应采用可变数量的函数 并创建一个从右到左应用它们的函数 3 2 1 rest reverse 1 2 3 4 5 partial 3 second 1 2 3 4
  • ifstream.eof() - 在真正结束之前到达文件末尾

    我有一个大约 11 1G 的二进制文件 其中存储来自 Kinect 的一系列深度帧 该文件中有 19437 帧 为了每次读取一帧 我使用ifstream in fstream但它达到了eof在文件真正结束之前 我只得到了前 20 帧 由于e
  • 使用 Typescript 和 requirejs 时,我的 Knockout.js 扩展应该放在哪里

    我正在将一些 javascript 代码移植到 typescript 并使用 requirejs 我有一个 config ts file config ts
  • 我应该从哪里开始使用 python 制作抓取工具或机器人? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我对编程语言 python 不是那么陌生 但我不知道从哪里开始使用 python 制作机器人或爬虫 我应该学习cgi编程吗 或者刮刀是否仅使用 python 脚本运行 我应该为此
  • 使用 d 指针有哪些优点和缺点?

    d 指针在 Qt 中大量使用 它们是 pimpl 惯用法的实现 我知道 pimpl 习语的优点和缺点 但我错过了 d 指针实现的优点 Here and here是 d 指针的样本 直接用这个不是更方便吗 class MyClassPriva
  • AWS Elastic Beanstalk 和 PHP 会话

    我目前正在 AWS EC2 实例上开发一个 php 应用程序 但我决定将其移至 Elastic Beanstalk 以利用自动扩展功能 虽然大多数应用程序完美地迁移到新的 Elastic Beanstalk EC2 实例 但我遇到了有关 p
  • Java Graphics.fillPolygon:如何渲染右边缘和下边缘?

    绘制多边形时 Java2D 会忽略右边缘和底边缘 我明白为什么要这样做 然而 我想画一些包含这些边缘的东西 我想到的一件事是遵循fillPolygon with drawPolygon具有相同的坐标 但这似乎留下了间隙 参见底部的小三角形图
  • 适合简单聊天应用程序的设计模式

    我正在设计一个简单的聊天应用程序 只是为了好玩 我一直想知道该聊天应用程序的简单设计 为了给您概述 以下是规则 匿名用户只需使用昵称即可进入聊天室 用户 ID 大概是由系统在后台分配的 他们可以加入 订阅 聊天对话 他会看到其他用户的聊天文
  • 查询mongoengine中的列表;包含与在

    我在带有 ids ReferenceField 的模型中有一个 ListField 如果某个 id 位于该列表中 我需要进行查询 据我所知 我有两个选择 Model objects filter refs contains 59633cad
  • Android 应用内计费 - BillingService 存在 onServiceConnected 和 onServiceDisconnected 编译错误

    我正在使用 Dungeons 应用程序示例 并且使用该示例中提供的 BillingService 类 我正在使用 Java 6 并且 override 对我有用 但是我在 BillingService java 中的这两个方法上收到编译错误
  • 过滤自定义适配器 IndexOutOfBoundsException

    我是安卓新手 我的自定义适配器在过滤时导致异常 这是我的代码 私有类 DeptAdapter 扩展 ArrayAdapter 实现 Filterable private ArrayList
  • jQuery 反转子元素的顺序

    使用 jQuery 反转子元素顺序的最佳方法是什么 例如 如果我从以下内容开始 ul li A li li B li li C li ul 我想以此结束 ul li C li li B li li A li ul var list ul v
  • 检索 jooq 中 selectCount 的值

    我有一些代码看起来像这样 Record record jooq selectCount from USERS fetchOne 目前我正在执行以下操作来获取计数 Integer count Integer record getValue 0
  • grep: -P 在 Jenkins 中仅支持 unibyte 和 UTF-8 语言环境

    我有一个 shell 脚本 可以在本地的 git bash 中正确执行 但是 当通过 Jenkins 使用与 shell 环境相同的 git bash 执行相同操作时 它会失败并显示 grep P 仅支持 unibyte 和 UTF 8 语
  • 复制工作表而不复制代码

    我可以通过调用它来复制工作表 Copy method Sheets Example Copy After Worksheets Sheet3 但是 这也会复制与该工作表关联的任何宏或事件处理程序 如何在不复制任何 Visual Basic
  • 对于每个控制变量必须是变量或对象

    这里对 VBA 真的很陌生 我环顾四周并尝试拼凑一些代码来满足我的需求 我认为已经差不多了 但我遇到的错误可能很容易克服 但我不知道如何克服 该代码查看当前工作表 STOCK 并从单元格 A2 中获取 目标 文本值 然后 它在另一个工作表