Tag: word vba

在Word中的文本框中移动光标

我正尝试使用VBA将Excel中的图表粘贴到Word中的文本框(与文本一致)中。 我发现,当我刚select文本框后粘贴,图表将粘贴在文本框上方,而不是在文本框中。 要将其粘贴到文本框中,我必须首先将光标移动到框中。 知道了,我读了SetFocus可以在文本框中移动光标, 但是我在SetFocus的一行中收到错误信息“找不到方法或数据成员”。 任何人都可以帮我在文本框中移动光标吗? 以下是我用来复制和粘贴的内容: xlsfile.ActiveChart.ChartArea.Copy 'Copying has no problem ActiveDocument.Shapes(boxName).SetFocus 'I cannot find the function in the suggested function list Selection.PasteSpecial DataType:=wdPasteBitmap

如何将MS Excel中的单元格的值复制到MSWord文件的VB字段中?

我需要在MS Word 2003中有一个VOB代码,复制Excel文件中的特定单元格,并将其粘贴到单词(字段)中。 以下是我所做的,并导致错误。 Sub cmdGetNumber() Dim XL As Object Dim WBEx As Object Dim ExelWS As Object Dim appwd As Object Dim wdApp As Word.Application '''' 'On Error GoTo OLE_ERROR Set XL = CreateObject("Excel.Application") Set wdApp = CreateObject("Word.Application") 'Open Excel document Set WBEx = XL.Workbooks.Open("C:\Documents and Settings\121567\Desktop\tafket1.xls") Set ExelWS = WBEx.Worksheets("Sheet1") XL.Visible = True […]

有没有办法通过Excel中的VBA触发“跟踪更改”?

我想从VBA开始/停止Excel中的“跟踪更改”function。 通过networkingsearch,我看到了一个叫做ActiveDocument对象的TrackRevisions的属性。 据说在MS Word中写入ActiveDocument.TrackRevisions = True应该打开“跟踪更改”。 但在MS Excel中,这一行提供了424 Object required运行时错误。 尝试使用ThisWorkbook时返回相同的错误。 将其更改为ActiveSheet带来438 Object doesn't support this property or method错误。

使用通配符在文档中查找string; 返回完整的stringVBA

我需要做的是search一个单词文件一美元的金额,然后返回到用户validation程序的金额。 我知道金额以“$”开头,小数点后两位数字结束(每个文档只有一个金额)。 search返回真正像我想要的,但我怎样才能真正从字文档中拉出完整的数字(分配给一个variables) 代码如下(Excel 2010); 干杯。 With wdDoc.Content.Find .Text = "$*.??" .MatchWildcards = True If .Execute Then 'would be verified here Else 'etc End If End With 编辑:我设法得到以下工作; With wdApp.Selection.Find .Text = "$*.??" .Wrap = wdFindAsk .Forward = True .MatchWildcards = True If .Execute Then debug.print wdApp.Selection.Text Else debug.print "Not Found" End If End With […]

将3个值中的1个传递给一个Sub

我想更新Sub中的一个(1的3)variables。 这3个variables已经被分配了,但是我想更新一个variables。 请参阅下面的脚本,了解在不同Macros subs之间传递string的一个简单示例 在Macro1中 Sub Sub1() Text1 = "First Text" Text2 = "Second Text" Text3 = "Third Text" Call Macro2.Sub2(Text1, Text2, Text3) End Sub 在Macro2中 Public PassedText1, PassedText2, PassedText3 As String Sub Sub2(ByVal r1 As String, ByVal r2 As String, ByVal r3 As String) PassedText1 = r1 PassedText2 = r2 PassedText3 = r3 End […]

使用Excel VBA使用循环将图片插入到Word中

我试图用一个循环来缩短我的VBA代码的最后一部分。 我现在的代码是: Sub InsertPics() Dim WordApp as Object Dim WordDoc as Object Set WordApp = CreateObject("Word.Application") Set WordDoc = WordApp.Documents.Open("Testing.docx" WordApp.Visible = True Dim path() as Variant Dim i as Long Dim Pic as Variant path = Application.Transpose(Sheets("Selection").Range("N10:N24").Value) For i = LBound(ppath) To UBound(ppath) path(i) = Sheets("Output").Range("Directory").Value & "\" & path(i) & ".jpg" Next i […]

Word VBA提取embedded式文件的标题

我试图提取Word文档中的所有embedded式Excel文件。 我知道我可以通过将docx的文件名更改为zip,然后在word / embeddings文件夹中find所有的Excel文件来快速完成此操作。 问题在于word / embedding中的Excel文件具有非常通用的文件名(例如,Microsoft_Excel_Macro-Enabled_Worksheet1.xlsm,Microsoft_Excel_Macro-Enabled_Worksheet2.xlsm)而不是原始文件名。 然而,原始文件实际上是csv而不是xlsm文件。 我没有参与创build这个文档。 我假设他们使用插入 – >对象 – >从文件创build。 此外,我正在使用Word 2010,但根据兼容性检查器,文档最初是使用Word 97-2003创build的,并且这些文件稍后与Word 2007一起embedded。 我可以find原始文件名,如果我进入docx,右键单击embedded式文件图标,然后转到启用macros的工作表对象 – >转换… – >更改图标… – >标题 但是,我不想为一堆embedded式Excel文件手动执行此操作。 那么有没有办法使用一些vba代码来提取所有embedded文件的原始文件名列表? 然后我可以使用这个列表作为一个键来重命名一般命名的文件。

在Excel中调用GetCrossReferenceItems(wdRefTypeHeading)

我正在尝试使用模板将excel内容导出到word文档中。 单词模板中有不同的标题级别。 我需要得到标题列表,以便我可以将Excel中的内容插入到正确的位置。 但是, GetCrossReferenceItems(wdRefTypeHeading)不起作用。 这里是代码: Private Sub CommandButton1_Click() Set wdObj = CreateObject("Word.Application") wdObj.Visible = True wdObj.Documents.Open FileName:="test.dotx" Set wdDoc = wdObj.ActiveDocument astrHeadings = wdDoc.GetCrossReferenceItems(wdRefTypeHeading) MsgBox ("headings #" & UBound(astrHeadings)) 'correct number if in word, 0 if in excel wdObj.Quit End Sub 如果我把一个完全相同的代码放在word文档中,我可以得到这个列表,但是如果我把相同的代码放在一个excel中,这个列表总是空的(ubound(~) = 0) 。 为什么会发生?

如何从Word中获得对打开的Excel电子表格的引用?

我有一些VBA代码,从Excel中复制东西,并将其粘贴到Word中。 我遇到的问题是如何打开电子表格。 我可以通过使用绝对path引用来打开它 Workbooks.Open“C:\ path \ filename.xls” 我宁愿使用相对path引用来引用电子表格。 我能够find从Excel工作簿到另一个相对path引用的代码,但它似乎并不工作,如果你从Word做它。

从单词内复制并粘贴图片作为命名的excel范围

我坚持为单词编码一个命令button。 button(在word文档中)需要调用一个对话框来指定excel工作簿的文件名,然后复制一个已命名的范围并将其粘贴回单词中作为图片。 复制和粘贴部分相当简单,但获取文件名对话框不适合我。 几乎每一个我发现的例子都指定了代码中的excel文件名,而不是来自对话框 我的代码到目前为止(试图尽可能清理它,有很多的试验和错误) Sub CRA_copy() Dim oXL As Excel.Application Dim oWB As Excel.Workbook Dim oSheet As Excel.Worksheet Dim oRng As Excel.Range Dim ExcelWasNotRunning As Boolean Dim WorkbookToWorkOn As String Dim dlgOpen As FileDialog Dim crabook As String oName = ActiveDocument.Name 'If Excel is running, get a handle on it; otherwise start a new […]