Tag: word vba

确定Word文档或Excel电子表格是否包含macros

在将Word或Excel文档的二进制文件读入内存时,是否可以检查数据以确定是否在其中构buildmacros?

Excel VBA错误从macros禁用的实例访问HelpFile属性?

我想我已经偶然发现了一个Excel中的错误 – 但是我真的很想和其他人一起validation。 当打开工作簿时打开应用程序的.AutomationSecurity属性设置为ForceDisable读取Workbook.VBProject.HelpFile属性时发生错误。 在这种情况下,这个string属性返回一个(可能)格式错误的Unicodestring,而VBA又会显示带有问号的string。 在其上运行StrConv(…,vbUnicode)使其可以再次读取,但有时这样会丢失最后一个字符。 这可能表明unicodestring确实是格式不正确的,所以VBA因此试图首先将其转换并失败。 重现此行为的步骤: 创build一个新的Excel工作簿 转到它的VBA项目(Alt-F11) 添加一个新的代码模块并添加一些代码(比如Dim a As Long ) input项目的属性(菜单Tools …属性) input“description”作为项目描述,input“abc.hlp”作为帮助文件名称 将工作簿保存为.xlsb或.xlsm closures工作簿 创build一个新的Excel工作簿 转到它的VBA项目(Alt-F11) 添加一个新的代码模块 粘贴下面的代码 调整第一行的path,使其指向上面创build的文件 运行testing例程 要使用的代码: Const csFilePath As String = "<path to your test workbook>" Sub TestSecurity(testType As String, secondExcel As Application, security As MsoAutomationSecurity) Dim theWorkbook As Workbook secondExcel.AutomationSecurity = security Set […]

从Excel VBA更新Word文档中的链接字段

我试图通过将数据放入电子表格并链接到Word中的相应单元格,自动更新3个不同Word文档中的某些信息(例如名称,date和数字)。 电子表格中有一些macros,它可以在内部自动更新电子表格的一部分。 除了更新Word文档中的链接外,一切工作都正常。 当试图更新Word中的链接并右键单击它并select“更新链接”选项时,它将popup电子表格的“macros警告”对话框,询问是否要激活macros。 它不是只做一次,而是在20多年左右不断更新的过程中(这对我来说似乎非常长)。 因此,更新链接的工作,但只有当你愿意点击几十次“激活macros”button。 我尝试使用VBA自动更新Word文档中的所有字段,但是也有同样的问题,它也会持续半分钟的时间显示macros对话框。 这是我的代码: Sub UpdateFields() ActiveDocument.Fields.Update End Sub 我也尝试直接从电子表格中更新Word文档,但这也不起作用,因为当Excel试图通过VBA打开一个Word文档时,程序停止执行,并导致这个错误: “Excel正在等待另一个应用程序来完成一个OLE操作”。 单击确定并等待不起作用,因为几秒钟后会再次出现错误消息,停止它的唯一方法是手动终止Excel进程。 这是我的Excelmacros代码: Sub LoopThroughFiles() Path = Application.ActiveWorkbook.Path Dim WordFile As String WordFile = Dir(Path & "\*.doc") Do While Len(WordFile) > 0 Run Update(Path & "\" & WordFile) WordFile = Dir Loop End Sub Function Update(Filepath As String) Dim WordDoc As […]

MS Office – ActiveXbutton切换位置

这个问题有几个例子,但这个是主要的。 这是关于更新(我们最显着的问题是孩子是KB2726958)。 我们有一个Leave Spreadsheet看起来像这样: 离开Spreadsheet示例 通过按下灰色的“离开”button,你最终在这里: 留下Word文档 所有的编程都是用VBA编写的(我以前从来没有用过VBA,我可以在一定程度上理解它)。 现在问题在于,使用“Leave Spreadsheet example”中的ActiveXbutton会导致2个button“通过电子邮件发送”和“保存”来切换function; 通过电子邮件发送尝试保存并保存打开Outlook并创build电子邮件。 两个function都完全保留了function,只是错误的button。 我觉得奇怪的是,超链接到相同的文件的作品; button不会被切换,并具有完整的function。 我唯一的解决方法就是在使用超链接时直接打开文件。 当使用ActiveXbutton时,它似乎是基于它所链接的文件创build一个新的文件。 例如,超链接直接打开C:\ Report.dotm,但ActiveXbutton打开Document1.doc,并使用基于Report.dotm的模板。 我正在考虑,也许activeXbutton打开一个不正确的扩展名的Word? 但我不知道如何解决这个问题(下面的代码显示在ActiveX控件上的链接文件是一个.dotm)。 什么进一步投入扳手混合的是,它只影响一些电脑…考虑到现场我们都使用相同types的电脑相同的图像… 🙁 我的问题是,有谁知道他们为什么可能交换? 他们位于相同的networking驱动器,尽pipe不同的目录。 他们需要相同的权限才能访问。 这些button的代码如下所示:Excelbutton: Private Sub CommandButton1_Click() ' This button links the excel spreadsheet to the word doc Dim wrdApp As Object Dim wrdDoc As Object Dim i As Integer Set wrdApp […]

从Word复制粘贴表格到Excel

我有一个文件定期更新。 我可以进入该Word文档,select整个表格的内容并复制,然后进入Excel电子表格并粘贴。 搞砸了 但是,我修复如下: sht.Cells.UnMerge sht.Cells.ColumnWidth = 14 sht.Cells.RowHeight = 14 sht.Cells.Font.Size = 10 无论表是否具有合并字段,此手动复制粘贴都可以工作。 然后我可以开始手动操作:parsing,检查,计算等 我一次可以做一张桌子,但是这很麻烦,当然也很容易出错。 我想自动化这个。 我发现了一些代码: Sub read_word_document() Dim sht As Worksheet Dim WordDoc As Word.Document Dim WordApp As Word.Application Set WordApp = CreateObject("Word.Application") WordApp.Visible = False On Error GoTo ErrHandler Set WordDoc = WordApp.Documents.Open("Z:\mydir\myfile1.DOC", ReadOnly:=True) j = 0 For i = […]

运行macros菜单中没有显示macros

我开始学习VBA,我不明白为什么从互联网复制粘贴的一些macros没有出现在运行macros菜单(Alt-F8)中。 下面有2个macros,但只有第二个显示。 为什么? 我该如何解决? Sub Test1(ByVal Target As Hyperlink) '… End Sub Sub Test2() '… End Sub

使用邮件合并从Excel文件生成Word文档

我正在尝试使用Microsoft Word中的邮件合并function生成Word文档。 为了尽可能清楚我的梦想是: (1)将所有要创build的文档的所有值放在一个excel文档中(2)使用Word创build一个模板,方法是select上面的excel文件作为数据表(3)运行一个使用Excel表格中的值的macros也许内置Word的邮件合并function,为Excel表格中的每行生成1个文件,使用其中一个单元格作为要保存的文件的名称。 最终的结果是能够使用一个模板来创buildx个Word文档,该模板从Excel表格中提取所有值,包括生成文档的文件名。 请帮忙。 提前致谢。

如何将embedded的图片从Excel中保存/复制到Word

我有什么 :一个Excel文件在一列(实际上它是自由格式化,但alignment在列内)一些元素是embedded的bmp图片,显示公式=EMBED("Paint.Picture","")当你点击在他们。 当您查看Excel工作表时,只显示代表图片的图标,而不显示图片本身 。 我想要的 :embedded的图片(不是图标)复制到一个新的Word文档。 我到目前为止的守则是 : 'Image Objects Dim myObjs As Shapes Dim myObj As Shape Set myObjs = ActiveSheet.Shapes 'Traversing objects Dim row As Integer Dim myRange As Range Dim myRange2 As Range Dim isAddressMatch As Boolean 'Word Document Objects Dim wordApp As New Word.Application Dim myWord As Word.Document 'Prepare word for […]

Excel VBA相当于Word VBA系统

我有一个Word VBA函数,我想在Excel VBA(这个select背后的原因来自这个问题 ),我被困在以下问题: Word VBA函数广泛使用System.PrivateProfileString ,当应用于Excel VBA时会引发Compile Error: invalid qualifier错误。 Excel中的等效语句是什么? 或者,我该如何解决这个问题? 使用示例: strHomeSharePath = System.PrivateProfileString("", "HKEY_CURRENT_USER\Volatile Environment", "HOMESHARE")

文档中链接对象的文件path的VBA列表

我有许多大型Microsoft Word文档,其中包含许多Microsoft Excel电子表格中的许多链接文件。 打开Word文档时,即使选中了“打开更新链接文件”选项: Word通过打开和closures每个单独链接的相关Excel电子表格来检查每个链接的来源(即使从同一电子表格中,Word将打开并closures电子表格x次)。 这意味着打开文档需要很长时间 。 我发现如果包含链接对象源的电子表格已经打开,文档打开速度更快,所以Word不会打开,closures,重新打开它们。 到目前为止,我有一个解决scheme的开始是创build链接对象的所有文件path的列表,由以下VBA代码完成: Sub TypeArray() Dim List(), Path As String Dim i, x As Integer Dim s As InlineShape Dim fso As FileSystemObject, ts As TextStream Set fso = New FileSystemObject Set ts = fso.OpenTextFile("C:\MyFolder\List.txt", 8, True) With ts .WriteLine (ActiveDocument.InlineShapes.Count) End With For Each s In ActiveDocument.InlineShapes Path […]