草庐IT

windows - 将脚本字典保存在内存中,VBA

我在VBA中使用脚本字典在Excel2010中保存1,840,000个键值对。我想声明并填充一次,然后在我的模块和函数中使用它们。首先,我使用PublicdictAsScripting.Dictionary将字典声明为公开的,然后我将其填充到worksheet_activate()中。我如何保存它并在其他模组中使用它?谢谢 最佳答案 作为一种良好的编程习惯,将这样的变量包装在getter函数中,并将全局变量作为static本地隐藏在其中。在第一次使用时填充它。为此,请在标准模块中编写此函数:PublicFunctiongetMyDi

windows - 如何从批处理文件中调用 VBA 函数

我有一个.bat文件,它在我在cmd中输入日期后执行一些代码:test.bat包含:-set/PPWeekday=asofdate:因为我总是进入前一个工作日,所以我想编写一些代码来完成这项工作。但是发现作为批处理脚本的一部分很难做到,我读到在excel中创建宏并将值传递到命令行以运行批处理脚本要容易得多。所以我就这样做了:VBA中的PWeekday函数PublicFunctionPWeekday()AsStringDimoffsetDayAsIntegerIfWeekday(Date)=1Then'MondayoffsetDay=3EndIfPWeekDay=Format(Date-

windows - VBA - Windows 和 OSX 中的用户名

我正在编写VBA代码以从多个xlsx文件收集输入并将它们合并到一个主表中。由于此工作表的用户混合了Windows和OSX用户,因此我的代码需要在两个平台上通用。我想要实现的其中一件事是确定用户的用户名。这可以在Windows上使用environ("username")并在OSX上使用MacScript来完成。但是,以下代码无法在Mac上编译,因为它不知道environ()。OS_IS_MAC=Application.OperatingSystemLike"*Mac*"IfOS_IS_MACThensMyScript="setuserNametoshortusernameof(syste

windows - VBA:IE-如何在没有弹出文件上传表单的情况下将路径名分配给文件输入标签?

我目前正在做文件上传的自动化下面是输入文件标签的HTML标签:下面是按钮HTML标签:我的VBA编码是:DimfileeAsObjectSetfilee=mydoc.getElementById("file")filee.Value=filenamepathSetattach=mydoc.getElementsByName("Attach")attach(0).Click当我运行此编码时,输入文件路径框未分配路径名,因此我选择了文件路径。查找附件截图。最后我尝试了下面的代码但是发送键没有执行DimfileeAsObjectSetfilee=mydoc.getElementById("f

windows - 从 VBA 代码调用 SFTP 进程

问题-将key存储在缓存中问题停止VBA应用程序我使用pscp.exe将文件从Windows传输到Linux机器。备注:pscp.exe存在于我的VBA代码中(该客户端是PuTTY工具的一部分)当我将文件从我的PC复制到任何新的Linux机器时,我收到“将密​​钥存储在缓存中?(是/否)”的问题,这会中断我的VBA应用程序(VBA应用程序在sftp进程上停止)。我需要建议如何忽略“将key存储在缓存中?(是/否)”这个问题。或者从我的VBA代码中自动发送一个“y”键?或者在运行pscp.exe之前在PC注册表中定义的其他解决方案?但是该怎么做呢?来自WINXP命令行(cmd)的示例备注

windows - VBA:用于在注册表中存储敏感信息的用户特定 key

我有一个需要连接到远程服务器的outlookVBA脚本。为此,用户必须输入他的服务器密码。为了避免每次我想将其安全地保存在注册表中时都输入此服务器密码。我已经找到一篇文章如何加密字符串:CanIuseDPAPI(orsomethinglikeit)inVBA?但是你需要一个key来加密。我可以在Windows中使用特定于用户的东西吗?我怀疑我能否读取已登录用户的Windows密码,因为这将是一个安全漏洞。但是有可能得到他的windows密码的哈希值吗?在这种情况下,我可以使用Windows密码的散列来加密服务器密码并满足这两个要求。除登录用户外,没有其他人可以获得服务器密码,用户自己也

string - 无法将字符串从 vba 传递到 Windows dll

我有64位Windows10和MSOffice64位。我正在尝试让PowerPoint的VBA在自写的64位WindowsDLL中加载和执行函数。问题是我无法将字符串从VBA传递到WindowsDLL。各种网站上有很多讨论,但我还没有找到一个有效的。我尝试了两种方法但没有成功。如果我使用调用DLL的C++应用程序,我没有问题。方法一:动态链接库:extern"C"{__declspec(dllexport)longjaadd(longa,longb,LPCWSTRstrg){MessageBoxW(NULL,strg,L"DLL",MB_OK);returna+b;}}在VBA中:Pr

c++ - VBA 64 位 Excel 不将指针传递给 DLL 函数 (C++)

我有一个在Excel64位上运行的VBA程序调用一些DLL函数(C++)。问题是(显然)它不能将指针传递给C++程序。该程序适用于Excel32位。操作系统是Windows8。对于Windows7,32位和64位版本的Excel都运行良好。C++:doubletest(long*v,longi){if(v==NULL)return-88;elsereturn*((long*)v);}VBA:PrivateDeclarePtrSafeFunctionhamid_testLib"...\CVode.dll"(ByValvAsLongPtr,ByValiAsLong)AsDoubleDimx

vba - 以连续形式控制 ms Access 滚动条

我正在以连续的形式实现拖放模拟。基本上它的工作方式是,旁边有一个人列表,用户可以将一个人从列表拖到一个字段,(这是一个座位列表,有Seat1,Seat2,seat3等字段......,每一排座位都是一条新记录)。对于基本的拖放功能,我正在使用此链接DragAndDrop中的说明,而且效果很好。现在这是我的问题,要知道用户在哪条记录上移动鼠标,我需要计算鼠标的位置除以详细信息部分,这样当表单没有向下滚动时它运行良好,但是当表单向下滚动时,我需要首先知道表单向下滚动了多少,这只能通过WindowsAPI来完成。所以我发现www.lebans.com/conformscurcontrol.h

windows - VBA 获取当前机器上的可用语言列表

我有一个多语言Access应用程序,需要Access机器上安装的语言/键盘布局。我有一些接受各种语言输入的字段。我希望能够在输入和退出这些字段时更改事件语言/键盘布局。我确定有某种类型的WindowsAPI可用于此,但我无法打开任何东西。如果有任何代码示例、链接或任何可以让我指明正确方向的内容,我会很高兴。 最佳答案 您可以使用KeyboardInputFunctions更改事件键盘布局.您应该查看的功能是:LoadKeyboardLayoutActivateKeyboardLayoutUnloadKeyboardLayoutGet