如何通过名称获取控件名称?

2023-11-24

我有一个简单的功能,其中有一个组合框。如果组合框的值等于“禁用”,我将禁用文本框 B。有许多组合框及其相应的文本框 B,按行排列并手动命名。如果组合框 A 被命名为Product1,文本框B将被命名Product1_status

我在想这样的事情:

If value_of_a = "disable" Then 
 Dim name_of_b as String
 name_of_b = Me.Combo.Name + "_status"
 get_object_by_name(name_of_b).Enabled = False
End If

我该怎么做呢?


我不确定你如何称呼它,但这里有一个独立的过程应该有所帮助:

Sub test()

Dim ws As Excel.Worksheet
Dim ProductCombo As OLEObject
Dim ProductText As OLEObject

Set ws = ThisWorkbook.Sheets(1)
With ws
    Set ProductCombo = .OLEObjects("Product1")
    Set ProductText = .OLEObjects(ProductCombo.Name & "_status")
    ProductText.Enabled = ProductCombo.Object.Text <> "Disabled"
End With
End Sub

编辑:我真的很讨厌工作表控件 - 每次对它们进行编程时我都从头开始!尽管如此,我想我应该添加这个子例程,根据其配对的组合框,重置名称符合 Product#_status 模式的每个文本框。该逻辑确实假设名称以 Product1、Product2 等开头,编号中没有间隙:

Sub test2()

Dim ws As Excel.Worksheet
Dim ctl As OLEObject
Dim i As Long
Dim ProductComboboxesCount
Dim ProductCombo As OLEObject
Dim ProductText As OLEObject
Const ControlPrefix As String = "Product"

Set ws = ThisWorkbook.Sheets(1)
With ws
    For Each ctl In .OLEObjects
        If TypeOf ctl.Object Is MSForms.ComboBox And Left(ctl.Name, Len(ControlPrefix)) = ControlPrefix Then
            ProductComboboxesCount = ProductComboboxesCount + 1
        End If
    Next ctl
    For i = 1 To ProductComboboxesCount
        Set ProductCombo = .OLEObjects(ControlPrefix & i)
        Set ProductText = .OLEObjects(ControlPrefix & i & "_status")
        ProductText.Enabled = ProductCombo.Object.Text <> "Disabled"
    Next i
End With
End Sub
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何通过名称获取控件名称? 的相关文章

  • 如何让VLOOKUP在VBA中选择到最低行?

    希望自动在单元格中插入 VLOOKUP 公式 录制宏时 我指示它使用相同的公式填充下面的列 效果很好 但是 当 VLOOKUP 搜索的表发生变化 更多或更少的行 时 就会出现问题 在记录时 VLOOKUP 下降到表中的最后一行 273 但是
  • VBA 中的多线程

    这里有人知道如何让VBA运行多线程吗 我正在使用 Excel 无法用 VBA 本地完成 VBA 构建在单线程单元中 获得多个线程的唯一方法是使用 VBA 之外的其他具有 COM 接口的东西构建 DLL 并从 VBA 调用它 信息 OLE 线
  • Office excel将CORS请求作为跨域请求

    我正在尝试从我的 Excel 插件发出跨域请求 正如这里所建议的 http dev office com docs add ins develop addressing same origin policy limitations http
  • 如何在 Excel 中对一组数据进行排序以匹配另一组数据?

    我有一个不按字母或数字顺序排列的数据列表 我想对同一日期的第二个列表进行排序以匹配第一个列表 我无法更改数据的顺序 我的目标是将第二组中的附加数据粘贴回第一个数据集中 DATA SET A DATA SET B 22350 BH160 10
  • Excel FILTER() 对于空白单元格返回 0

    我怀疑以前有人问过这个问题 但我找不到 FILTER 即使指定了返回字符串 通常也会为空白行返回 0 Using filter 我经常收到空单元格的 0 返回值 假设 A 列中有 6 行数据 abc xyz abc xyz abc If I
  • JasperReports 中每个工作表属性一页

    我有一个要求 我必须在 JasperReports 中设计一个报告 该报告有 4 页 第一张纸有 5 页 类似的其他纸有一页或两页 我面临的问题是 如果我使用net sf jasperreports export xls one page
  • 如何在Power Query中对N列求和

    我的数据每月都会更新 因此我尝试创建一个强大的查询表 该表将显示我创建的枢转 N 列的总和 但我似乎不知道如何在强大的查询中执行此操作 我目前有这个代码 旋转后 创建要求和的列的列表 添加索引列以限制每行 添加一列 该列对该行的列进行求和
  • 在Excel中,我可以使用超链接来运行vba宏吗?

    我有一个包含多行数据的电子表格 我希望能够单击一个单元格 该单元格将使用该行中的数据运行宏 由于行数总是在变化 我认为每行的超链接可能是最好的方法 ROW MeterID Lat Long ReadX ReadY ReadZ CoeffA
  • 两个日期之间的小时数在 Excel 中不起作用

    根据要求 我提供了一张简化的屏幕截图来说明该问题 如您所见 我减去了两个日期并将其格式化为 h mm ss 为什么这不能提供两个日期之间经过的总小时数 有一个更好的方法吗 下面有一个很好的答案 但我试图弄清楚为什么按照此屏幕截图中所示的方式
  • 我如何以更好的方式编码而不是像这样的VBA编码

    我正在 Excel 中创建一个仪表板 但是我想知道是否有比这更好的编码方式 我想对其进行模块化 而不是这样做以使其更加整洁 Private Sub Afford If af Value True Then af afr Value Shee
  • 检查未绑定控件是否具有值的正确方法

    简单场景 一个表单和一个文本框 未绑定 Text1 If lt gt Text1 Then MsgBox Not Empty End If 上面的代码有效 表达方式 lt gt Text1如果文本框包含字符 则计算结果为 True 无论文本
  • SQL Excel VBA 运行时错误 3709 无效连接

    这是我的第一个问题 欢迎提出建设性的批评 我正在尝试从 Excel VBA 查询 Access 数据库并将返回信息放入 Excel 范围中 我收到此错误 错误消息 运行时错误 3709 连接无法用于 执行此操作 在此情况下它已关闭或无效 语
  • 在 Excel 中使用 VBA 设置图像透明度

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

    假设我有这样的数据框 col1 col2 col3 col4 0 A A 1 pass 2 1 A A 2 pass 4 2 A A 1 fail 4 3 A A 1 fail 5 4 A A 1 pass 3 5 A A 2 fail 2
  • 将 MS 转换为秒

    我发现这个公式可以用来将 MS 转换为秒 但它是为 Excel 2002 编写的 而我正在使用 2010 CONCATENATE TEXT INT B1 1000 86400 hh mm ss B1 INT B1 1000 1000 以下是
  • 使用 XMLHTTP 进行抓取会在特定类名处引发错误

    我正在尝试使用此代码抓取网站以提取姓名和联系人 Sub Test Dim htmlDoc As Object Dim htmlDoc2 As Object Dim elem As Variant Dim tag As Variant Dim
  • 读取上传的Excel文件而不保存它

    在这段代码中 我从用户那里获取上传的文件并将其保存在我的应用程序中的文件夹中 然后对此 Excel 文件进行 OleDbConnection 并读取数据 我的问题是 有人可以建议一种阅读此 Excel 文件的首选方法 但无需预先保存它 因为
  • Excel - 公式或宏根据链接到另一个单元格的另一个单元格填充单元格

    在 Excel 中 我试图根据其他两个单元格中包含的值创建一个单元格 我需要单元格 X 和 Y 来获取基于单元格 L 和 的数据 就像这样 X Y L 1 2 3 4 5 6 A 6 1 1 6 1 6 1 7 1 7 2 7 2 8 1
  • 从Excel工作表中读取汉字? (总是返回“???”)

    如何从Excel单元格中读取汉字并将其写入文件 当我取值时 Worksheets ActiveCell Worksheet Name Cells 3 columnNumbers 0 value 它总是返回 Dim fileStream Fi
  • 计算序列中的重复值

    如何使用Excel计算列中的重复数据 Example A B apple 1 apple 2 apple 3 ball 1 bat 1 dog 1 dog 2 gole 1 gole 2 gole 3 gole 4 我认为对于你的情况中的所

随机推荐

  • 在 Mongoose / MongoDB 中创建多字段索引

    我试图找到有关如何在 Mongoosejs 中创建多字段索引的文档 但无济于事 特别是我有两个需要索引和唯一的字段 将两个字段一起索引的猫鼬模式示例是什么 你打电话给index方法对你的Schema对象这样做如图所示here 对于你的情况
  • Java 中的 IntPtr (C#) 相当于什么?

    Java JNA 中的 IntPtr C 相当于什么 com sun jna ptr IntByReference
  • Javascript regexObj.exec() 说 TypeError:pattern.exec 不是函数

    我想使用正则表达式从 img 标签中提取图像名称javascript 我的问题是console log 抛出异常 TypeError pattern exec is not a function JS label btn danger on
  • 固定维数 (N=9)、对称、正半定稠密线性系统的快速求解

    您会推荐哪种算法来快速求解固定维数 N 9 的密集线性系统 矩阵是对称的 半正定的 高斯消去法 LU分解 乔列斯基分解 etc 类型为 32 位和 64 位浮点 这样的系统将被解决数百万次 因此算法在维度 n 9 方面应该相当快 附 示例r
  • Scala 方法类型和作为参数的方法

    在下面的代码示例中 我不明白为什么函数 fun 可以作为参数传递给方法addAction 方法fun属于类型Unit 而该方法addAction需要类型的函数 gt Unit If fun属于类型 gt Unit 那么为什么编译器会抱怨fu
  • AngularJS:段落元素的换行符

    在 Angular 中 我需要从包含换行符的文本块生成一系列段落元素 我可以想出几种方法来做到这一点 然而我想知道是否存在 官方 Angular 方式 或者在 AngularJS 上下文中最优雅的方法是什么 一个例子 From Lorem
  • 如何通过 cypress.io 使用 vue.js v-select 查找元素并选择?

    抱歉 我需要有关 cypress io 查找元素 v select 和 select 选项的帮助
  • 根据视差图进行 OpenCv 深度估计

    我正在尝试使用 OpenCV 估计立体图像对的深度 我有视差图 深度估计可以通过以下方式获得 Baseline focal depth disparity SensorSize 我使用块匹配技术在两个校正图像中找到相同的点 OpenCV 允
  • Xamarin iOS 模拟器运行旧代码

    当我从 Visual Studio 调试 Xamarin iOS 项目时 它会在模拟器上构建 安装并启动应用程序 不会出现任何问题 但在启动时 我看到了来自某个方法的大量调试跟踪 而该方法甚至不再存在于我的 C 代码中 我还可以在删除该方法
  • 使用 SAM 创建 API 网关代理资源

    我有一个看似简单的要求 即在 SAM 亚马逊的无服务器应用程序模型 中创建代理资源 事实上非常简单 以至于亚马逊的文档似乎将其保留为exercise致读者 我想创建一个 AWS API Gateway 包罗万象的终端节点来将所有内容代理到另
  • isNew() 如何判断会话是新会话还是已在使用中?

    如何调用isNew 在会话对象上 检查会话是否是新会话或已在使用中 我读到了isNew 如果客户端尚未响应会话 ID 则返回 true 但是这是什么意思 请解释 我读到 如果客户端尚未响应会话 ID 则 isNew 返回 true 但是这是
  • 从 .h5 文件加载权重时出现 Tensorflow 2.0 ValueError

    我有一个VAE架构脚本如下 import numpy as np import tensorflow as tf from tensorflow keras layers import Input Conv2D Flatten Dense
  • 从 Laravel 访问查询字符串值

    有谁知道是否可以在 Laravel 中使用 URL 查询 Example 我有以下路线 Route get text TextController index 该页面上的文本基于以下 url 查询 http example com text
  • 有没有更简单的方法来比较文件版本?

    我编写了一个函数来比较客户端当前拥有的文件版本和服务器上文件的最新版本之间的文件版本 客户端将 quad Major Minor Build Private 版本号作为字符串传递给服务器 然后服务器使用 FileVersionInfo cl
  • 获取某个 UITableViewCell 的屏幕坐标?

    所以 我有这个UITableView 它位于 iPad 应用程序中 有些单元格的右侧有一个附件按钮 小圆形箭头 当按下该按钮时 我会呈现一个弹出视图 用户可以在其中选择与他们触摸的表格单元格相关的操作 到目前为止 这一切都不是困难的或特殊的
  • 如何在不使用 setInterval/timeout 的情况下检查实时更新?

    建立一个社交网络 我正在尝试获取实时通知 目前 站点使用 setInterval 每隔几秒发送一次 AJAX 请求 它看起来像这样 setInterval function url base dir ajax file php data d
  • 如果 CSS3 过渡不存在,使用 Modernizr 和 jQuery 制作动画

    如果不支持 CSS3 有没有办法结合使用 Modernizr 和 jQuery 来启用类似于过渡的功能 我目前正在做的事情是这样的 div class hoverable p This div changes both width and
  • 交互式过渡非线性

    我正在玩自定义和交互式视图控制器转换 UIPercentDrivenInteractiveTransition 我正在构建一个以模式方式呈现卡片 其他视图控制器 的应用程序 我已经进行了自定义转换UIViewControllerAnimat
  • 使用 MySQL 和 PHP 在 HTML 中创建动态表

    我看过很多关于如何使用 PHP 和 MySQL 在 HTML 中构建表的帖子 但我经常在创建表后更改 SQL 列的标题 PHP 有什么方法可以自动更新代码 这样我只需输入表名 它就会打印表 而无需输入所有内容 th tags th
  • 如何通过名称获取控件名称?

    我有一个简单的功能 其中有一个组合框 如果组合框的值等于 禁用 我将禁用文本框 B 有许多组合框及其相应的文本框 B 按行排列并手动命名 如果组合框 A 被命名为Product1 文本框B将被命名Product1 status 我在想这样的