如何在 vba 中禁用自动完成?

How to disable autocomplete in vba?

我正在创建程序,用于将几张 excel 工作表导出为带有水印和表单字段等的 pdf。现在一切正常,但最终的 pdf 相当大。所以我在考虑缩小它的最佳方法,我发现最好的结果是简单地在 Adob​​e Acrobat 中打开 pdf,然后用 "Adobe PDF" 打印机打印它。这样我将文件大小减小到原始大小的 1/6。

所以我正在尝试通过 VBA 代码执行此操作,看起来它是使用 JS 的非常简单的代码。

sPath = "some path"
sPathFinal = "some other path"

Dim AcroApp As AcroAVDoc: Set AcroApp = CreateObject("AcroExch.AVDoc")
Dim Document As AcroPDDoc
Dim JSO, pp

AcroApp.Open sPath, ""

Set Document = AcroApp.GetPDDoc()
Set JSO = Document.GetJSObject
Set pp = JSO.getPrintParams

pp.printerName = "Adobe PDF"
pp.Filename = sPathFinal

JSO.Print (pp)

问题出在最后一行,应该是这样

JSO.print(pp) - "print" 小写 "p"

但每次我离开车道时,它都会自动更正为大写 "P"。我试图在“工具”->“选项”->“编辑器”->“代码设置”以及“选项”选项卡中的其他位置关闭所有内容,但到目前为止没有成功。

有没有办法阻止这种自动更正?

(而且我的母语不是英语,所以很有可能它的叫法不同:)

简短的回答是不,你不能,因为VB编辑器会自动更正你代码中的大小写。

这是因为VB是区分大小写的(尽管看起来不像),编辑试图通过改变大小写来防止错字你的变量。

如果您想保留大小写并避免自动更正,最简单的解决方案是使用另一个编辑器(如Notepad) 并编译你的代码 from the command-line.

希望对您有所帮助。