问题标签 [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 回答
1586 浏览

vba - 为什么我在 VBA for Excel 2013 中的 '^' 运算符之前需要一个空格,否则会产生编译时错误“预期列表或分隔符”

例如,如果我键入Sqr(a ^ 2 + b ^ 2)没有错误。但是当我输入Sqr(a ^ 2 + b^ 2)它会产生一个我不明白的编译错误:

图片

^VBA7中的功能是什么,而不是_^(下划线显示空间)表示幂?

0 投票
1 回答
29 浏览

oracle11g - Oracle 11g 与 VBA 的连接问题

我正在尝试使用连接字符串 OraOLEDB.Oracle 将 Oracle 与 VBA 连接起来,但它抛出了一个错误Provider not found

  • MS Office 365 - 64 位
  • Oracle 11g - 64 位
  • Windows7 - 64 位

我无法切换到 32 位。

这将是一个很大的帮助。

0 投票
2 回答
3628 浏览

ms-access - 在 Win64 VBA Office 中声明语句

我在 Windows 32 位中使用了 vba 代码。现在我已迁移到 Windows 10 64 位,我收到消息“应更新此项目中的代码以在 64 位系统上使用。请查看并更新 Declare 语句,然后用 PtrSafe 属性标记它们。” 我拥有的声明命令如下:

我查看了一些文档,但在使用 LongLong 和 LongPtr 语句时我无法真正理解。或者,如果它只是在 Declare 语句中声明 PtrSafe。

微软文档链接 https://msdn.microsoft.com/en-us/library/office/ee691831(v=office.14).aspx

有人能帮我吗?

0 投票
1 回答
281 浏览

excel - 动态命名范围的 VBA 合并导致静态范围 i/o 保持动态

上下文(VBA7.1、Excel 2013 Pro):
所有工作表和动态命名范围 (DNR) 均以编程方式创建。我想将一些 DNR 单元(多列相同数据的情况)合并到一个 DNR 中,以便将它们全部分组。在这个阶段,单元 DNR 及其合并结果都在工作表范围内。

问题
合并的命名范围不保留所有单个 DNR 的动态属性。如果我手动进行,它当然可以工作,只是为了确认要合并的 DNR 是有效的动态的。

问题
我应该如何应用命名范围合并,以便结果范围也保持为动态命名范围?


主要代码

GetDNR:将工作表中的命名范围作为字符串数组返回,并排除一些我不想合并的选定命名范围(这是一种解决方法,因为我在 VBA 中找到了“Union”但没有“Substract”函数)

GetDNR函数返回的 DNR在此处输入图像描述

0 投票
0 回答
373 浏览

excel - Excel 2016 64bit VBA:为什么我的全局变量在子结束时重置?

我需要将日期存储为全局变量。我以为我正在这样做,但手表显示它在 sub 结束后重置。我查看了无数的全局变量文章和对问题的回答,似乎没有任何效果。

那么,当我需要在以后的 subs 中调用该变量时,如何阻止这种情况发生在我的 VBA 代码中?

0 投票
1 回答
211 浏览

vba - 错误 31 - 从 VBA 宏调用 CredUIPromptForWindowsCredentialW

我最近问了这个问题,但由于信息不足而被删除。我会尝试再次询问,希望能提供更多信息。

我正在尝试调用 Win32 API 函数CredUIPromptForWindowsCredentialsW(),但过去两天一直失败。

我还阅读了一些帖子,例如:

VBA:Unicode 字符串和 Windows API

从 Visual Basic 调用 API 的数据类型转换

如何将 VBA 中的 Windows API 声明转换为 64 位

我最后的代码是我认为应该为调用定义所有参数的方式,但是这会返回错误代码 31:

ERROR_GEN_FAILURE

31 (0x1F)

连接到系统的设备不工作。

编辑:此代码现在返回 31 个错误代码,感谢评论部分指出我的声明中的一些更改。它不再崩溃,但错误 31 是我现在收到的。

0 投票
1 回答
44 浏览

vba - 成功循环浏览文件夹中的文件,但所有文件都打印损坏错误

此代码应该打开我的目标文件夹的子文件夹中的所有文件并搜索它们以查找特定术语,打印这些术语以及它们在文本文件中的位置。如果遇到错误,请打印该错误,以便我们知道要手动搜索哪些文档。

它似乎正在工作,它正在文档中查找搜索词,但随后它会为子文件夹中的每个文件打印一条错误消息,表明它已损坏?顺便说一句,这些文件可以打开。它们似乎没有以任何方式损坏。他们确实跟踪了变化,这可能是为什么?我在代码下方的一个文件夹中包含了一些示例输出。

最终代码:非常感谢大家的帮助

一些大大简化的输出:

  1. 03100,03100 混凝土模板.docx
  2. 05501,03200 混凝土钢筋.docx
  3. 07920,03251 混凝土接头.docx
  4. 03600,03300 现浇混凝土.docx

  1. ~$100 Concrete Formwork.docx - 5792 文件似乎已损坏。
  2. ~$200 Concrete Reinforcement.docx - 5792 文件似乎已损坏。
  3. ~$251 Concrete Joints.docx - 5792 文件似乎已损坏。
  4. ~$300 Cast in Place Concrete.docx - 5792 文件似乎已损坏。

有什么建议吗?此外,如果您在代码中发现任何其他错误,请随时纠正。谢谢!

0 投票
1 回答
161 浏览

excel - 为 VBA 版本差异而烦恼:版本 6 和版本 7

我是 VBA 新手,使用excel 2010 64bit VBA v6.0 compatible。我粘贴了代码,尝试通过 VBA 下载文件。

但是,弹出窗口说它只能在 64 位系统上运行,如下所示:

编译错误:必须更新此项目中的代码才能在 64 位系统上使用。请查看和更新​​ Declare 语句,然后使用 PtrSafe 属性对其进行标记。


我的问题是:

  1. 我确实使用window 和office 64 位系统。为什么窗口总是弹出?

  2. 有没有办法解决这个问题?

提前致谢。

0 投票
1 回答
441 浏览

sql - 使用 VBA 执行 .SQL 文件

我想知道是否有任何 VBA 代码允许我.sql通过单击 Excel 中的按钮来执行文件?

我一直在浏览不同的网站,但所有网站都显示了包含在宏中编写 SQL 查询的代码,尽管这不是我想要的。因此,我将.sql脚本作为文件存储在计算机上的不同文件夹中,我想要的是通过使用 VBA 在 Excel 中单击一个按钮来运行此脚本。

0 投票
0 回答
403 浏览

vba - VBA 运行时:msvbvm60.dll 与 VBE7.DLL

我读过 VB6 使用了 msvbvm60.dll 运行时库[1],而且 VBA 和 VB6 使用相同的运行时[2]

但是我还记得读过 Office 中的当前 VBA 版本是 VBA7,如果我查看对象浏览器,我会发现

检查依赖 walker 中两个文件导出的内容,我可以看到 VBE7.DLL 包含 msvbvm60.dll 导出的一小部分函数(例如,两者都定义 VarPtr)

在此处输入图像描述

但也有一些新的(例如 rtI8FromErrVar - 大概是为了帮助处理 64 位的东西,因为这是 VBA7 引入的) 在此处输入图像描述

显然有些重叠,还有一些新的东西。但是看这样的文件,VBE7 缺少大部分内容。那么 VBA 是否会退回到 Windows 附带的通用 VB6 运行时?

我问是因为我试图访问由 msvbvm60.dll 导出的函数,而不是 VBE7.DLL,而且我不知道在 Mac 上哪里可以找到它