我正在从C# dll中定义的excel中的VBA脚本实例化一个COM对象。我实例化的C#类有一个终结器,它执行垃圾收集,特别是它引用的其他MS Office对象,我应该看到这些对象在任务管理器中出现和消失。事实上,单元测试表明,当调用dll时,Office进程会出现,当它完成时,Office进程会消失。
当从VBA调用dll时,我注意到进程在VBA函数结束后仍保持打开状态,即对象在被调用后未被清除,这使我相信VBA不会释放COM对象。
我的函数看起来像这样:
Function Raz(inp As String)
Dim o: Set o = CreateObject("foo.ba
我正在尝试创建一个简单的excel文件,用一个按钮来填充一个excel文件的单元格。我遇到的问题是,如果我打开了我的excel文件,python由于权限错误而无法打开excel (因为文件已经打开了)。我知道一种简单的方法是在VBA中创建变量,让python执行所有计算,然后将其传递回VBA。然后VBA将填充单元格。这不是我想要做的。我在网上看到人们能够在运行python和填充的同时保持excel的打开状态。我遗漏了什么?当从VBA打开python时,有什么方法可以给python权限吗? 将Python集成到VBA似乎相当简单。我使用以下代码在VBA中创建了一个模块: Sub RunPyth
我正在寻找一个代码,可以编写,可以打开excel和排序字段在打开的工作簿。
一种想法是:
set the workbook to run a vba sorting script on open
start Excel.exe filename.xls
这是一个可行的选择吗?如果是这样,我将如何在打开时启动vba脚本?
我正在构建一个工具,它提取和比较相同数据库的两个版本之间的VBA代码模块。该工具正在Excel中构建。
不幸的是,这些数据库倾向于在打开时出现在屏幕上的消息框,并且通常提示关闭时压缩数据库。这意味着,当我试图打开数据库以获取VBA代码时,Excel代码会挂起,直到响应了Access消息框。
然而,奇怪的是,我发现当我通过Excel代码打开数据库时,没有出现打开和关闭消息,而且我能够没有任何问题地提取所有VBA代码模块。
在不触发Access VBA代码的情况下,可以这样打开Access数据库,但不必在Excel中遍历代码吗?我用来连接到数据库的代码是:
Set dbLatest = New A
我已经通过VBA访问打开了一个Excel文件,并且可以在Excel单元格中读写。如何勾选Excel Ckeck Box?
我的代码:
Dim Excel_App As Object
Dim strExcel As String
Set Excel_App = CreateObject("Excel.Application")
Excel_App.Visible = True
Excel_App.Workbooks.Open fready
With Excel_App
.CheckBox3.Value = True 'This line is used in V
首先,请原谅我的错误,如果这已经得到了答案,但我无法找到解决我的问题在谷歌和本网站的搜索工具。
使用的语言:Excel的VBA与VBA编辑器
问题的说明:我想打开一个现有的Excel文档,作为当前打开的Excel文档中的一个新工作表。目前,我的代码看起来是这样的;
......
Dim myFile As String
myFile = Application.GetOpenFilename()
Dim oldWB as Workbook
oldWB = Application.Workbooks.Open(myFile)
.....
上一段代码的结果,是正在打开的新Excel工作簿。这是接近
我在Outlook中有一个宏,用于从打开的Excel工作簿("Workbook1")中获取数据。
我参考工作簿如下:
Dim objApp As Excel.Application
Set objApp = GetObject(, "Excel.Application")
Set wb = objApp.Workbooks("Workbook1.xlsx")
我经常得到运行时错误9,即VBA找不到工作簿。
由于我打开了多个Excel实例,所以VBA正在错误的实例中查找我的工作簿。
如何在运行多个实例时引用工作簿
我在excel工作表中用VBA编写了一些代码,它将文本文件转换为excel工作表,并对数据执行一些验证,以过滤正确的数据和错误数据,并将其分离为正确的文本文件和错误文本文件。打开excel时会运行整个逻辑。打开此excel的逻辑是在我的.net应用程序中用c#编写的。
守则是:
FileInfo fi = new FileInfo("C:\automate_load.xlsm");
if (fi.Exists)
{
Excel.Application excelapp = new Excel.Application();
excelapp.Visible =
我目前使用的是VBA代码,它最初是为excel文档设计的。我可以只复制word中使用的代码,但我认为扩展应用程序可能会更好,这样它就可以兼容“潜在的”任何MS Office应用程序。但我不完全确定如何做到这一点。
例如,基于excel的代码获取文档的路径:
If libDir = "" Then libDir = ThisWorkbook.Path
要将其扩展到word,我只需用ActiveDocument替换ThisWorkbook。
但是,是否有可能找出哪个office应用程序正在运行VBA代码,以便我可以保留这两个代码。
'IF VBA run from Wor
我试图通过命令行打开VBA来自动运行VBA,如下所示:
cmd.exe /C set MacroName=MyMacro \& EXCEL.EXE C:\\_documents\\Book2.xlsm
VBA脚本和文件如下:
Book2.xlsm/模1
Sub MyMacro()
MsgBox "MyMacro is running..."
End Sub
Book2.xlsm/ThisWorkbook
Private Sub Workbook_Open()
Dim strMacroName As String
strMacroName = Cr
我试着用十六进制编辑器在excel中打开一系列.dat文件,然后开始复制和粘贴过程。有人知道如何在Excel的vba中使用excel以外的程序打开文件吗?另外,我在我写的代码中也有一些错误。
test = count
Do While (test >= 0)
Workbooks.Open Filename:=AllFiles(test) 'Open .dat file in order of Highest to Lowest count index. ERROR: SUBSCRIPT OUT OF RANGE. Need to open .dat files with H
我正在使用Excel文件目录来获取有关每个文件的信息。我正在尝试使用C# Excel互操作来收集与其中一些文件相关联的VBA宏的信息。这方面的代码如下所示。问题是,没有一个excel文件可以编程访问宏。我可以在文件的本地副本上手动切换,但我目前只有读取文件目录的权限。是否可以在没有写权限的情况下临时更改代码中的编程访问设置(读取VBA代码,而不是进行任何更改)?
另外,我只知道如何手动对编程访问进行更改(通过每个excel文件中的设置)。考虑到我最终可能只需要获得读/写访问权限,我是否可以在批处理过程中这样做,以节省手动打开和关闭文件的大量时间?
VBA.VBProject p