更改 Excel ActiveX 列表框的名称

2024-01-01

我有一组 ActiveX 控件和子控件,它们像这样组合在一起:

  1. 用户在 ActiveX 文本框中键入内容,
  2. TextBox_Click 触发 3 个子程序的执行。
  3. 第一个子更新工作表上命名范围的值;根据更新后的值,使用偏移函数在 Excel 中创建表格
  4. 第二个子将 3 中更新的表格范围复制并粘贴。值到工作表上的范围(以消除公式)

这就是它崩溃的地方。

  1. 当我设置工作表时,我创建一个列表框(ListBox1)。上面 #2 中提到的三个子程序中的第三个子程序测试工作表中是否存在 ActiveX“ListBox1”。如果不是,代码的目的是确定 ListBox 的名称(LB1 或 LB2 或 LB2 等),将名称更改为“ListBox1”,并将上面#4 中的表粘贴到 ListBox1 中。然后 ListBox1_Click 命令可以触发一组独特的代码来执行。

现在我只是测试名称 ListBox1 和 ListBox2 之间的切换。

这个想法是,例如,当用户在 TextBox1 中键入内容时,ListBox1 将在每次击键时更新。因此,输入“g”,列表会显示数据库表中以第一个“g”开头的 20 个名称。然后输入“ge”,列表显示 20 个名称,从数据库表中的第一个“ge”开始,等等。用户单击一个名称,ListBox1_click 会执行一些独特的操作。如果用户在 TextBox2 中输入,他们会在 ListBox(我想将其重命名为 ListBox2)中看到不同的数据,如果他们单击,则由 ListBox2_Click 执行一组唯一的代码。

#5 中的问题是我第一次尝试执行时收到错误“对象不支持此属性或方法”。第二次就ok了。如果我在工作表上做了其他事情并返回到它,我会再次收到错误。

这是模块中 #5 的代码:

Sub PutListInListBox()

    Dim OBJ As Object

    On Error Resume Next
        Set OBJ = ActiveSheet.OLEObjects("ListBox1")
    On Error GoTo 0

    If OBJ Is Nothing Then
        ActiveSheet.ListBox2.Name = "ListBox1"
    End If

    ActiveSheet.ListBox1.Clear
    ActiveSheet.ListBox1.List = Sheets("Search Criteria Control").Range("G1:G21").Value

End Sub

我不知道我做错了什么,非常感谢任何帮助。

我希望我能说清楚这一点。

更新的代码我有一堆 ActiveX 标签和文本框,因此我使用您建议的第一个表单来搜索特定名称案例。我一直在阅读有关它的内容,但看不出我在这里有什么问题。输入 TB5 后,LB 不会更新。我单击返回设计模式,可以看到名称仍然是 ListBox2。

有任何想法吗?

Private Sub TextBox5_Change()

    Call UpdateValues(TextBox5.Value)
    Call CopyTable

    Dim OLEOBJ As OLEObject

    For Each OLEOBJ In ActiveSheet.OLEObjects
        Select Case OLEOBJ.Name
            Case "ListBox1", "ListBox2", "ListBox3"
                OLEOBJ.Name = "ListBox1"
                OLEOBJ.ListFillRange = Sheets("Search Criteria Control").Range("G1:G21").Address(external:=True)
        End Select
        Exit For
    Next

End Sub

我将专注于您的代码#5。

首先,如果您要更改名称ListBox Object,最好迭代Object Collection它属于,因为您不确定它的名称。像这样的事情:

Dim oleobj As OLEObject
Dim sh As Worksheet: Set sh = ActiveSheet

For Each oleobj In sh.OLEObjects
    Select Case oleobj.Name
    Case "LB1", "LB2", "ListBox1", "ListBox2" 'put the possible names here
        oleobj.Name = "ListBox1" 'change it to the name you want
    End Select
    Exit For 'if you have more than 1 ListBox
Next

如果您只想更改现有的名称ListBox,然后跳过检查。

For Each oleobj In sh.OLEObjects
    oleobj.Name = "ListBox1"
    Exit For 'if you have more than 1 ListBox
Next

现在,要为其分配值或列表,您可以直接分配源范围,使用ListFillRange Property更改名称后。

oleobj.ListFillRange = Sheets("Search Criteria Control") _
    .Range("G1:G21").Address(, , , True) 'add this line within the loop

请注意,您无需清除之前的列表。它会自动更新。
由于我不确定您想要完全实现什么,所以我就到此为止。不过。

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

更改 Excel ActiveX 列表框的名称 的相关文章

  • Excel - 确定排列的奇偶性

    我正在处理一个 Excel 工作表 需要确定大小数字的垂直数组的奇偶校验N 该数组包含来自的每个数字1 to N每一次正好一次 在这种情况下 奇偶校验被定义为将加扰数组转换为从小到大排序的数组所需的交换次数 例如 数组 3 1 2 4 具有
  • 更改列标签?例如:将“A”列更改为“名称”列

    谁能告诉我如何更改列标签 例如 我想将列 A 更改为列 名称 Excel Excel 的版本是什么 一般来说 您无法更改列字母 它们是 Excel 系统的一部分 您可以使用工作表中的一行来输入您正在使用的表格的标题 表标题可以是描述性列名称
  • 如何在网页中显示嵌入的 Excel 文件?

    我想允许在网页中查看嵌入的 Excel 报告 有什么办法吗 我不想使用 ActiveX 或 OWC Office Web 组件 我只想从 Internet Explorer 应用程序打开现有文件 我不希望用户下载然后打开它 使用 ifram
  • 使用VBA复制垂直列并沿对角线粘贴

    我有一列数据 我们称之为 A 列 其中有 35 行数据 如何在此列上循环 然后将每个数据点粘贴到另一张工作表中 同时为每个循环循环增加列和行 换句话说 我寻求对角粘贴在第二张纸中 有没有一种简单的方法可以在 VBA 中执行此类操作 不要循环
  • VBA 激活 Internet Explorer 窗口

    我正在制作一个宏 用于打开 Internet Explorer 导航并登录网站 一切正常 但我需要将 IE 窗口放在前面并激活它 这样我就可以使用SendKeys在上面 我发现网站和视频在名为的命令上有不同的方法AppActivate我已经
  • VBA - HTML 抓取问题

    我正在尝试从网站上抓取拍卖数据https www rbauction com heavy equipment auctions https www rbauction com heavy equipment auctions 我当前的尝试是
  • phpexcel xlsx 的千位分隔符

    我在用着 PHPExcel Shared String setThousandsSeparator 为 Excel 文件定义千位分隔符 多亏了它 单元格显示为55 452代替55452 不过 单元格值是整数 55452 因此可以对其进行计算
  • 在 MS Outlook 中,报告所有未收到回复的已发送邮件

    我每天都会发送大量电子邮件 但常常无法跟踪哪些邮件得到了实际回复 有没有办法使用 VBA 脚本查看上周发送的所有消息 并检查他们是否收到回复 具体来说 是一份已发送电子邮件的报告 这些电子邮件尚未从至少一个发送到的地址收到回复 我了解一点
  • 将最后几个功能添加到我的调度模板生成器中

    感谢 StackOverflow 上的一些出色的人 我几乎完成了调度模板生成器的代码 我还想补充三件事 但我遇到了一些麻烦 当前细分 我有两张表 2 员工列表 和 X 模板 员工列表中的值是从单元格 D9 开始的一列员工姓名 然后将员工值转
  • 如何在ListBox中加载大量数据? ASP.NET MVC 应用程序

    我正在使用 ASP NET MVC 应用程序 要求用户能够从可能包含超过 30 000 个条目的列表框中选择一个项目 是否有一种使用 Ajax 调用来填充此 ListBox 内容的动态方法 效果良好 我是否最好只填充服务器上的 ListBo
  • xlwings: 删除一个列 | Excel 中的行

    如何删除 Excel 中的一行 wb xw Book Shipment xlsx wb sheets Page1 1 range 1 1 clear clear 用于删除内容 我想删除该行 我很惊讶 clear 函数有效 但 delete
  • 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
  • 在合并的单元格中选择、插入照片并将其居中

    我是一名研发面包师 正在为我的团队制作食谱模板 模板中有照片 但我需要轻松地允许他们单击一个按钮 打开照片的文件选择器 然后将该照片放在合并的单元格中 我其实不太擅长做这个 Sub InsertPhotoMacro Dim photoNam
  • VBA 有没有办法了解未使用的变量?

    标准 VBA 编辑器中是否有工具 方法或设置来警告已被修改的变量Dim med 但没有被使用 MZ Tools http www mztools com index aspx将搜索您的代码并告诉您哪些内容未被使用 VBA的版本可以找到her
  • VBA ByRef 参数类型不匹配

    最初在我的主代码部分中 我有一个丑陋的 if 语句 尽管它会运行丑陋 我决定将其设为我要调用的函数 这导致我收到错误 编译错误 ByRef 参数类型不匹配 我的假设是该函数需要正确引用 尽管我一直在阅读文档并且不明白为什么 gt 声明 Sh
  • 输入新行并复制上面单元格中的公式

    我正在尝试创建一个 Excel 宏来执行以下操作 在文档末尾输入新行 复制上面单元格中的公式 到目前为止我有这个 Sub New Delta Go to last cell Range A4 Select Selection End xlD
  • 在Excel中,我可以使用超链接来运行vba宏吗?

    我有一个包含多行数据的电子表格 我希望能够单击一个单元格 该单元格将使用该行中的数据运行宏 由于行数总是在变化 我认为每行的超链接可能是最好的方法 ROW MeterID Lat Long ReadX ReadY ReadZ CoeffA
  • 标志状态的 VBA 替换

    根据文档 Outlook 中的 MailItem FlagStatus 属性是已弃用 https msdn microsoft com en us library microsoft office interop outlook maili
  • 在VBA中初始化全局变量

    在 Excel 2003 中 如何声明全局变量并仅在打开工作簿时初始化它们一次 我有一些由几个宏使用的参数 基本上是输入文件的路径 目前 我的代码如下所示 global path1 path2 as string sub initPaths

随机推荐

  • 构建和验证 Gigya 签名

    我编写了一个方法 根据 Gigya 的指定时间戳和 UID 来验证 gigya 签名构建签名的说明 http developers gigya com 030 Gigya Socialize API 2 0 010 Developer Gu
  • 可能是C# 4.0编译器错误,其他人可以验证吗?

    由于我不知道究竟是哪一部分触发了错误 所以我不完全确定如何更好地标记它 这个问题是SO问题的副产品C 代码似乎以无效的方式进行优化 导致对象值变为 null https stackoverflow com questions 3379894
  • 是否有解决方法可以在 Ruby 中打开包含下划线的 URL?

    我正在使用 open uri 来打开 URL resp open http sub domain domain com 如果它包含下划线 我会收到错误 URI InvalidURIError the scheme http does not
  • 如何在 C++/CLI 接口中声明默认索引属性

    如何在 C CLI 接口中声明默认索引属性 请原谅使用命名空间的重复 完全限定符号 因为我刚刚学习 C CLI 并且希望确保 C 和 C 之间不会发生语言原语的意外混淆 Code is public interface class ITes
  • 代码段的动态重定位

    只是出于好奇 我想知道是否可以在期间重新定位一段代码 程序的执行 例如 我有一个函数 这个函数应该 每次执行后都会在内存中进行替换 我们想到了一个想法 就是使用自修改代码来做到这一点 根据网上的一些资源 自行修改 代码可以在Linux上执行
  • DICOM StudyInstanceUID 对于患者来说应该是唯一的吗?

    在处理 DICOM 研究 系列和媒体概念时 我想知道这些值对于所有数据是否都是唯一的 或者仅对于它们所属的患者而言是唯一的 另有表述 我可以让 2 名患者的研究 系列 SOP 实例 uid 值相同吗 或者 DICOM 标准根本不关心这一点
  • python opencv如何分割血管

    我正在尝试使用 Python 和 OpenCV 分割视网膜图像中的血管 这是原始图像 理想情况下 我希望所有血管都像这样非常明显 不同的图像 这是我到目前为止所尝试过的 我拍摄了图像的绿色通道 img cv2 imread images H
  • 由初始值设定项列表初始化的数组存储在哪里?

    鉴于这段代码 void someFunction void int array 1 2 3 4 5 6 7 8 9 10 数组的值存储在哪里 Stack Heap 与那些字符串文字一起 是不是叫高频堆 别的地方 我问这个问题是因为我不确定这
  • 如何修改一个活动的另一活动的变量?

    比方说 头等舱 有一个变量 字符串当前值 红色 带有一个通往 Second class 一项活动 的按钮 First class Activity 在文本视图中显示变量 currentValue 的值 目前为红色 如果我们按下按钮 它将带我
  • 在 Excel 中调整单元格宽度

    我正在使用 xlsxwriter 写入 Excel 工作表 我面临的问题是 当文本大于单元格大小时 它就会被隐藏 import xlsxwriter workbook xlsxwriter Workbook file xlsx worksh
  • Crashlytics - Firebase 日志中的 Stacktrace 不可读

    我刚刚开始使用 React Native Firebase 和 Crashlytics 版本 6 当我打电话时firebase crashlytics recordError error 在JS中catch我在 Firebase Crash
  • Python 3.10 模式匹配 (PEP 634) - 字符串中的通配符

    我有一个很大的 JSON 对象列表 我想根据其中一个键的开头来解析这些对象 并使用通配符来处理其余的 很多键都是相似的 比如 matchme foo and matchme bar 有一个内置通配符 但它仅用于整个值 有点像else 我可能
  • 在struts2中使用tile

    我正在关注 Struts2 中的 Tile 教程 但遇到以下错误 SEVERE Error configuring application listener of class org apache struts2 tiles StrutsT
  • 自定义声音推送通知不起作用(Flutter)

    to XXXX notification title ASAP Alert body Please open your app data screen Nexpage1 sound alarm click action FLUTTER NO
  • 从文本文件中提取两个分隔符之间的文本

    我目前正在写关于首席执行官自恋的硕士论文 为了衡量它 我必须进行财报电话文本分析 我按照 python 中提供的答案编写了一段代码这个链接 https stackoverflow com questions 36559356 extract
  • Ruby on Rails:为什么我在 Rails 后收到有关 javascript 和 css 的消息?

    轨道 gt Started GET assets application css body 1 for 127 0 0 1 at 2011 10 11 03 37 03 0900 Served asset application css 3
  • JPA:如何覆盖@Embedded属性的列名

    Person class Embeddable public class Person Column public int code 嵌入在里面Event两个不同属性的两倍 manager and operator Entity publi
  • ICMP 是传输层协议吗?

    我正在观看有关网络的视频讲座 讲师提到 ICMP 作为传输层协议 然而 谷歌搜索它显示了各种论坛将其描述为网络层协议 这让我很困惑 有人可以澄清一下吗 传输层协议涉及端到端发送数据并确保 或明确不确保 可靠性 TCP 用于将数据从一台计算机
  • 需要对我的 SSE/Assembly 尝试提出一些建设性的批评

    我正在努力将一些代码转换为 SSE 虽然我有正确的输出 但它比标准 C 代码慢 我需要执行此操作的代码是 float ox p2x px c py s m float oy p2y px s py c m 我得到的 SSE 代码是 void
  • 更改 Excel ActiveX 列表框的名称

    我有一组 ActiveX 控件和子控件 它们像这样组合在一起 用户在 ActiveX 文本框中键入内容 TextBox Click 触发 3 个子程序的执行 第一个子更新工作表上命名范围的值 根据更新后的值 使用偏移函数在 Excel 中创