问题标签 [vba7]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
133 浏览

ms-access-2010 - 如何使用多选项卡代码窗口视图设置 VBA IDE

我正在寻找一种解决方法,以允许 VBA7(ms-access 2010)的 IDE 在选项卡(多选项卡视图)中组织多个代码窗口,就像在大多数现代代码编辑器中一样。

你们中的任何人都知道实现这一目标的设置或方法吗?

提前致谢

彼得罗

0 投票
1 回答
217 浏览

vba - 如何使用 Dlookup for Multiple Criteria 创建动态组合框

表:tblNomenklatur 我有两个组合框来自:txtKategorie 和 txtTyp。第一个 Combobox (txtKategorie) 的值已修复!我希望第二个 Combobox (txtTyp) 的值根据用户在第一个中选择的内容而改变。如果用户选择“Datalogger”,则第二个组合框应该只包含“Base Layer Classic”和“Base Layer Plus”,如图所示。“加速度计”也是如此。

我已将代码放入第一个 Combobox 的 AfterUpdate 事件中:

当表单打开时,只有第一个组合框“txtKategorie”具有值。当用户选择 Datalogger 时,代码检查表中有多少记录具有 [Kat] = "K" 以定义 Do While 语句将运行多长时间。然后“txtTyp.AddItem”-Statement 应该将“Base Layer Classic”和“Base Layer Plus”添加到“txtTyp”组合框中。但不幸的是,该代码不起作用。包含两个标准的 Dlookup-Statement 存在问题。如果我删除了两个标准中的任何一个,则代码可以正常工作,但显然会为第二个 Combobox 提供错误的结果。如果我这样离开它,第二个 Combobox 保持为空。有人知道我做错了什么吗?

0 投票
2 回答
65 浏览

excel - 列不偏移

嗨,我试图在描述时偏移列和行,如果发现要从先前的测试中删除上面的所有数据,但是当我偏移它时,行正在向上移动,但列没有偏移它假设的 30。它没有任何错误。我是否需要将字母设置为值才能使其正常工作?谢谢最大

0 投票
3 回答
139 浏览

excel - 确定单元格地址以了解我的循环在哪里结束 - EXCEL VBA

嗨,我想知道如何使用 .address 来确定我应该在迭代中停止哪一行。所以我的代码正在查找预定日期行(每周)的单元格地址,当我输入日期时,它会自动查找匹配/最接近的日期。我的问题是根据最接近/匹配日期所在的列为日期行的下一列设置一个值。

这是我应该确定最接近/匹配日期的地址的代码部分。

首先是我将最接近/匹配日期的 x 值转换为实际日期,而不是 excel 值,例如 44506 = 11/6/2021,然后 for 循环让我确定 find.address 当我放一个时它是正确的msgbox find.address。

但我似乎无法在原始 for 循环之外使用 find.address 。

0 投票
2 回答
65 浏览

excel - 如何结束循环是变量为空

嗨我试图在我的范围内找到单词描述,如果描述是 foudn 那么它应该运行宏然后循环。但如果变量为空且未找到变量描述,我希望循环结束并显示 msgbox。我试图使用循环结束循环,直到单元格为空,但它似乎不起作用。变量 celling 引用为空,所以我不确定为什么这不起作用。任何帮助将不胜感激,感谢max

0 投票
1 回答
36 浏览

excel - 如何在 IF 语句后使用最后 2 行设置工作表之间的值

我正在尝试将整个列值从名为 Hey 的工作表复制并粘贴到名为 final 的工作表中的另一列。

我不想使用复制、粘贴或选择选项。但是,我的代码仅复制第一行。

也许你知道我做错了什么?

我需要将日期从 2 列或更多列复制到位于不同工作表中的另一列。

但是,我不确定是否可以在同一行中使用最后一行 2。我正在尝试这段代码,但只粘贴 1 行的值。

我需要将名为 HEY 的工作表中的 2 列或更多列的值添加到目标工作表中的同一列(最终工作表)

0 投票
2 回答
64 浏览

excel - Scripting.Dictionary 用字符串填充一列,考虑超过 3 个标准

我正在尝试用字符串填充列 C 考虑是否行上的消费者符合条件之一:

如果消费者满足这些规则之一,则该值应设置为考虑: • 消费者只有 1 笔交易——(已完成) • 消费者有 2 - 4 笔交易,但总交易量 < 10,000 美元 ---(已完成) •消费者级别(基于以下规则)为 2 级或 3 级 ---(此信息位于 CV 和 CW 列上)如果下拉列表为 60 天且最大交易日期早于 30 天 • 如果下拉列表为 1 年且最长交易日期超过 90 天 • 如果下拉列表为 5 年且最大交易日期超过 180 天

似乎我的代码在错误的列中查找客户级别。例如:客户编号 3 位于 H 列,因此代码需要检查列 CV 以查看级别 客户编号 3 也位于列 AJ 代码需要检查列 CW 以查看级别。如果客户端位于两列上,并且 cod 需要检查两列以查找信息。

CV 列的级别是客户编号位于 H 列或/和 G 列时 CW 列的级别是客户位于 AJ 列或/和 AI 列时

我也在这里问过(你可以下载文件https://www.ozgrid.com/forum/index.php?thread/1228270-how-to-populate-a-column-with-a-string-taking -in-consideration-5-different-crite/&postID=1239894#post1239941

0 投票
1 回答
65 浏览

excel - VBA Find .address 有时返回范围,有时返回单元格

我遇到了 VBA Range.Find 方法的问题。代码所做的是查看工作簿中的所有工作表,查找与数组中数据的任何匹配项,并更改具有与该数据相同值的单元格的颜色。

该代码在第一张纸上完美运行。然后,在下一张纸上,它陷入无限循环。单步执行代码后,Find 似乎在第一次在此页面上运行时返回一个范围格式(“A2:A2”)的地址,但之后又恢复为单元格格式(“A2”)。它不会在第一页上这样做,只是在第二页上。

我可以编写一些代码来检查返回的值并将其修整,但我想解决这个问题,而不是在上面打补丁。

这是中断的代码:

第一次通过第二页时,rng.Address 是“A2:A2”并存储在 StrtAdd 中。然后,当代码点击 .FindNext(rng) 时,rng.Address 更改为“A2”。因此, rng.Address 永远不会等于 StrtAdd,即使它们谈论的是完全相同的单元格。这就是无限循环。

有关解决此问题的最佳方法的任何想法?

wksSheets 是一个包含工作表名称的数组

findData 包含要查找的数据

提前致谢!!

0 投票
0 回答
562 浏览

vba - VBA Excel 365 64位Winsock实现问题

我正在努力解决与将 VBA 代码从 32 位移植到 64 位 excel 相关的问题。我想保证我已经尝试自己解决它两周,尝试修改代码,阅读论坛、文档、网页的音调,在 Microsoft 网站上寻找 VBA 参考。我正在向前迈出一小步,但最终我坚持了一步,我无法应对。

我的宏是根据互联网上的代码片段创建的。一般来说,它是为了连接到需要从中提取数据的服务器而编写的。它发送一个字符串并接收回字符串。

该宏在 32 位 excel 上运行良好,没有问题,但在 64 位 excel 上无法运行。当然,我修改了包括“PtrSafe”修饰符在内的函数声明,并在发现有必要时将“Long”数据类型更改为“LongPtr”。主要是在我期望函数需要指针或内存地址的地方。不幸的是,我无法访问“wsock32.dll”内部的任何详细定义,因此我的声明是基于我可以从互联网论坛获取的信息的猜测......我试图利用“ws2_32.dll”,但是'wsock32.dll' 更成功。我想我的应用程序'旧'winsock就足够了(但也许这是这里的一个问题......)。

为了按问题进行调试,我将宏重写为最简单的代码,在其中我正在逐步测试正在发生的事情。此时我可以初始化winsock,通过主机名获取地址(这应该很好用,因为我的代码以人类可读的方式为我提供了相同的IP地址,我可以从cmd窗口中的ping获得),初始化套接字. 目前我被困在连接到套接字上。我只是不知道我的代码有什么问题。我在这里展示的代码在 32 位 excel 2016 上进行了检查,它能够连接到套接字。当我尝试在 64 位 excel 上运行它时,我收到错误 10049。

请问我可以寻求支持吗?

0 投票
2 回答
71 浏览

regex - 匹配除 ' 之外的任何字符

我想匹配任何字符(不区分大小写),除非前面有一个单引号,然后是 On Error Goto 文本:

匹配:

不符合:

我试过了:[^']*(On Error Goto)但这没有用。

用于测试程序中是否使用了Errorhandler

谢谢!