问题标签 [vba6]

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 投票
3 回答
42 浏览

vba - vba 中的 sumproduct 语法是什么?

sum product 的正确语法是什么?

这是我的代码:

0 投票
1 回答
554 浏览

excel - Excel VBA中的正则表达式执行完全匹配

因此,我从 Excel 中的单元格中获取文本,然后在该文本中搜索特定短语。现在,只有当它是完全匹配的单词时,我才需要返回 true。例如,如果文本是“The Quick brown fox jumped over the lazy dog”并且我正在搜索“Qui”,它应该返回 false,但如果我搜索“Quick”,它应该返回 true。同样,“brown Quick”应该返回 false,“Quick brown”应该返回 true。

所以,我在 VBA 中使用正则表达式尝试了这个并想出了

使用此代码我无法生成所需的输出。我需要检查搜索短语之前的字符是空格还是什么都没有,搜索短语末尾的字符也是空格还是什么都没有。请帮助我。

0 投票
1 回答
156 浏览

excel - 如何在VBA中的范围内均匀分布已知数字

我这里有个问题,我一直在尝试使用 VBA 在一个范围内均匀分布一个已知数字。问题是我需要找到范围内的数字尽可能相等的方式,你可以帮帮我吗?或给出想法?

数据集如下

在此处输入图像描述

已知数字由红色的“TV Comodin”行给出,这是我的尝试:

基本上,我的代码找到“TV Comodin”行以获得循环将在其列的每一行中添加 1 乘 1 的次数,

抱歉,我对 VBA 有点陌生,顺便谢谢你。

0 投票
2 回答
189 浏览

vba - VBA:“运行时错误'457':此键已与此集合的元素相关联”

我在编写用于比较多张工作表(同一个 Excel 文件)中的多列的宏时遇到问题。我写的很少,但他们花了很长时间,以至于 excel 崩溃了。

假设我在同一个文件中有 4 张纸。Sheet1 有两列(B 和 C)和 7000 行。Sheet2 空工作表新条目。Sheet3 旧条目的空白表,但有一些更新的值/信息。Sheet4 是一个有 2 列(A 和 B)和 22000 行的数据库。

我需要将 Sheet1 中的 A 列与 Sheet4 中的 B 列进行比较。如果 A 列 sheet1 中有全新的条目,则将该条目从 A 列 sheet1(及其相应值从 B 列 sheet1)复制到 Sheet2 中的新行(A 列和 B 列)。如果 A 列 Sheet1 中的条目已经在 A 列 sheet4 中,则比较它们各自的 B 列值。如果 Sheet 1 中的 A 列 + B 列组合在 Sheet4 中,则忽略它。如果 A 列 Sheet1 中的值位于 A 列 Sheet4 中,但它们各自的 B 列值不匹配,则将 Sheet1 中的 A 列 + B 列复制到 Sheet3 中的新行(A 列和 B 列)。

我希望它足够清楚。由于行数(Sheet1 中的 7000 与 Sheet4 中的 20000 相比),我无法编写一个在一分钟内处理所有内容的宏。

有什么帮助吗?

编辑1:我使用了@FaneDuru 建议的代码(谢谢!)。但我遇到一个错误:“运行时错误'457':此键已与此集合的元素相关联”是因为我在同一列中有许多重复值吗?

编辑 2:似乎 VBA 无法识别“if not dict3.exists”代码。当我用小写字母键入“.exists”并跳转到另一行时,应该将其更正为大写“.Exists”,对吗?它没有这样做。

编辑3:我做了更多测试。我正在休息并运行代码。当我在这一行“If WorksheetFunction.CountIf(rngA4, arr1(i, 1)) > 0 Then”上放置中断时,不会发生错误。当我将中断放在“For j = UBound(arr4) To 1 Step -1”下面的一行时,错误正在发生。

错误是:“运行时错误'457':此键已与此集合的元素相关联”

0 投票
2 回答
64 浏览

excel - 为什么 VBA For Next Loop 计算不正确?{VBA}

我是 VBA 新手 - 尝试使用 VBA 进行简单计算,但无法使其正常工作。任何帮助将不胜感激。基本上我有一行,结果应该等于前一个结果+当前根据单元格

这就是我的意思

一种 C D
(1)第 1 行 1 2 3 4
(2)结果 1 (1+2) (1+2)+3 ((1+2)+3)+4

我一直用for Next 但无法生成我想看到的结果,第一个输出是正确的,但是在第一次计算之后,所有正在进行的计算都不正确

所以这段代码总能得到第一次计算的正确结果,但连续的结果总是错误的。有人知道是什么问题吗?对不起,这个问题可能很基础,但我自己无法弄清楚......谢谢你的帮助

0 投票
1 回答
16 浏览

vba - 我可以在 vba 中使用哪个函数,类似于我在 sql 中使用的函数

我在 sql 中有 tis 代码,它可以工作,但是我可以在 vba 中使用哪个函数来存档相同的结果。

RIGHT('00' + MONTH(lt.LveFromDate),2) --2021-03 --2021-03 --YEAR(lt.LveFromDate)

0 投票
0 回答
11 浏览

excel - VBA - 尝试在选择时动态更改数据验证下拉框输出(崩溃)。Excel 2013

我试图让用户从数据验证创建的单元格下拉框中选择描述(比如说 Apple),但输出不是“Apple”,而是与 Apple 相关联的代码,即 AP。目前我有一个包含所有描述和代码的查找表(我将描述放在左侧,因为我被告知这通常与 VLOOKUP 一起使用效果更好)查找表示例

我设法修改了我在网上找到的一些代码来执行这项工作(代码正在使用具有定义名称的数据范围对 3 个单独的列执行操作,以供 Range() 选择)[见下文]。但是,我发现此代码使工作表非常不稳定并且容易挂起/崩溃。如果我设置断点并单步执行代码,代码似乎可以完美运行。但是,当按预期运行代码时,它可能会在几行上正常工作,然后在选择一个值时突然挂起(有时会给出一个 Excel 内存不足错误,就好像它正在运行无限循环或其他东西一样)。此外,如果用户尝试清除第 3、5 或 9 列中的多行(通过拖动选择并按删除),则代码将始终使 excel 崩溃。我假设某些原因导致无限循环,但我不知道答案是什么(一一删除行似乎很好)。我已经检查了代码中引用的拼写(如前所述,它最初是有效的),并且查找表有每个项目的描述和相应的代码。

我可以在现有代码中实施一个简单的解决方案吗?也许有比我可以使用的 Worksheet_Change 更合适的事件?(例如选择的下拉选项或类似的东西)。

我已经开始通过创建可点击的按钮来暂时缓解这个问题,这些按钮为给定的用户选择的范围运行类似的脚本,但是这个解决方案似乎非常不优雅,并且不会实时更新所需的单元格,这可能导致提交的表格带有混合的描述和如果用户没有按需要运行此功能(更不用说指导用户所需的新输入以及它们如何工作),则在列中编写代码。

感谢您的时间。

山姆

0 投票
1 回答
130 浏览

excel - 宏:打开文件夹中的最新文件并复制粘贴到最后一个单元格下方

如何在 Excel VBA 中组合这两部分代码?

我不明白如何将打开的工作簿设置为活动工作簿并在最后一行下方复制粘贴。我认为错误出现在第 2 部分:对象变量或未设置块变量!


第2部分:

0 投票
1 回答
46 浏览

vba - VBA代码从一个工作表到另一个工作表中搜索列数据并将相应的行数据粘贴到第一个工作表上

我是 VBA 新手,我无法找到任何解决问题的方法。我有两个包含数据的工作簿。在 workbook1 中有一个名称列 A。在 workbook2 中还有一个名称 columnA 和从 B 列到 D 的其他数据。我需要在工作簿 1 的 A 列中从 workbook2 的 A 列中搜索名称,如果名称匹配我需要在 workbook1 中粘贴相应的行。另请注意,在工作簿 2 中,可能有多个相同名称的条目。因此,在这些情况下,必须将这些行值连接并粘贴到工作簿 1 上。

请帮忙

Dim AVals 作为新字典 Dim k As Long, j As Long, lastRow1 As Long, lastRow2 As Long Dim sh_1, sh_3 As Worksheet Dim MyName As String Dim tmpCollection As Collection Set sh_1 = Sheets("snipe-sample-assets blank") Dim键作为变体

0 投票
1 回答
47 浏览

vba - 两张表过滤数据结果仅选择性列复制粘贴到另一张表数据粘贴时不应替换

你能帮我解决这个小问题吗:让我解释一下我有一个包含多张工作表的工作簿

过滤苹果表列A结果一一复制几列粘贴到相应列中的相应给定表

并且同样需要为橙色结果一一复制几列粘贴到相应列中的相应给定工作表:这里它正在替换从Apple工作表复制的数据

您能否在粘贴时帮助我数据应该考虑该列的最后一行,我尝试了所有可能的方法仍然数据被替换