Tag: word vba

通过Word VBA项目使用ChDrive&Chdir for Excel

所以,我有一些问题得到ChDrive和ChDir正确使用Excel.Application.GetOpenFilename。 当我在Excel VBA项目中使用这些命令时,它工作正常: drive = Split(ActiveDocument.Path, ":")(0) loc = Split(ActiveDocument.Path, ":")(1) ChDrive drive ChDir loc exfile = exApp.GetOpenFilename("Microsoft Excel (*.xl*),*.xl*") Set exBk = exApp.Workbooks.Open(exfile) 但是,当我从Word项目执行此操作时,它仍然访问默认文件夹(MyDocuments)。 我已经尝试打开excel实例并在运行ChDrive / ChDir命令之前使其可见(如下所示),但无济于事 – GetOpenFilename仍然默认为MyDocuments。 Dim exApp As Excel.Application Dim exBk As Excel.Workbook Set exApp = CreateObject("Excel.Application") select_workbook: 'user defines Excel workbook to paste into Word.Application.Activate 'Set exBk = exApp.Workbooks.Add […]

复制一个表,使用vba指定从excel到word的位置

我用这个代码复制表格从Excel到Word Sub exceltoword() Dim rangeToCopy As Range Set rangeToCopy = Range("A1").CurrentRegion Dim wordApp As Word.Application Set wordApp = New Word.Application wordApp.Visible = True Dim wordDoc As Word.Document Set wordDoc = wordApp.Documents.Open("C:\Users\mohammad.taha\AppData\Roaming\Microsoft\Templates\ARABBANK -SALARIES STATEMENT.dotx") wordDoc.Application.Selection.Find.Text = "H" wordDoc.Application.Selection.Find.Execute wordDoc.Application.Selection.MoveDown Unit:=wdLine rangeToCopy.Copy wordDoc.Words(1).PasteExcelTable False, False, False End Sub 但是表格被粘贴到文档的第一行,我想将表格粘贴到文档中间的特定位置,我应该如何修改这个代码?

Excel Listobject表插入行导致单元格公式错误

背景:我创build了一个Word模板,其中包含一个例程,该例程创build一个数组,其中包含第一维中的项目标题和第二维中的目标标题。 这个数组被转置到Excel中的表格中,用于创build时间轴/甘特图。 问题:转置会将数组信息正确放置到Excel表中,并根据需要扩展该表的大小。 单元格B5是DataBodyRange的开始和我想要粘贴数组信息的开始位置。 ' paste headings from array into excel xlWS.Range("B5:C" & UBound(gHeadings, 2)) = xlApp.Transpose(gHeadings) 什么不以正确的方式发生在表中的后续数据单元格中。 时间轴单元格具有以下公式: =IF(AND(COLUMNS($H$5:H10)>=$E5,COLUMNS($H$5:H10)<=$F5),IF(COLUMNS($H$5:H10)-$E5<ROUND(($F5-$E5+1)*$G5,0),fillblock,""),"") 当转置完成时,在DataBodyRange的原始最后一行的表的行上包含引用的公式错误的单元格行。 在第10行,该公式从上面显示的内容变为: =IF(AND(COLUMNS($H$5:H119)>=$E10,COLUMNS($H$5:H119)<=$F10),IF(COLUMNS($H$5:H119)-$E10<ROUND(($F10-$E10+1)*$G10,0),fillblock,""),"") 任何想法或理解为什么发生这种情况,以及如何预防呢?

当字段为空时删除行

我正在尝试使用Visual Basic,以便可以使用Excel中的数据填充Word模板。 我有一个macros从Microsoft Excel中的一个表填充Word文档表中的字段。 到目前为止,如果Excel表小于单词表,则在单词表中打印“错误!没有文档variables”消息,并使用macros(下面)删除该字段。 但是,我也想删除发生此错误的Word表中的整个行。 你能帮我弄清楚如何做到这一点? Sub Rectangle_Click() Dim wrdApp As Word.Application Dim wrdDoc As Word.Document Dim ws As Worksheet Dim oHeader As Word.HeaderFooter Dim oSection As Word.Section Dim oFld As Word.Field Dim flds As Word.Fields Dim fld As Word.Field Set ws = ThisWorkbook.Sheets("Sheet1") ws.Activate On Error Resume Next Set wrdApp = GetObject(, "Word.Application") […]

更新Word文档中的所有Excelembedded式链接

感谢尼克我试过,但我要指定的Excel应用程序,因为这是在词VBA工作。 我也削减了代码,只改变了链接,但仍然很慢。 我不能理解,因为当我只更新使用的链接 Activedocument.fields.update 它立即完成。 我知道这只是更新和不改变源,但仍然是时间差太大。 我的完整代码是: Private Sub CommandButton1_Click() Dim OldFile As String Dim xlsobj As Object Dim xlsfile_chart As Object Dim dlgSelectFile As FileDialog 'FileDialog object ' Dim thisField As Field Dim selectedFile As Variant 'must be Variant to contain filepath of selected item Dim newFile As Variant Dim fieldCount As Integer ' […]

只要您从Excel工作表中读取数据,自动将行添加到循环中的MS Word表中

我是一个VBA新手,在我执行这个任务时遇到了很多错误和问题。 任何帮助将不胜感激。 基本上我有一个Word文档中的文本框(TextBox1)。 我有供用户input。这将是一个数字,文本引用回到一个文件夹与数字作为他们的名字的Excel文件。 该文件夹中的所有Excel文件具有相同的格式(由相同的模板创build),但每个文件中的行数彼此不同。 我的老板想让我在Word中创build一个VBA代码,以便将数据从Excel导入到word文档中,但是由于用户可以从文件夹中的任何现有文件中进行select,因此每个文件中的行数都不相同。 有人build议在循环中创build行,只要有从Excel中提取数据,但我不能让代码工作。 特别是在我设置单词表单元格和Excel单元格相等的情况下(我甚至不知道自己在做对)。 这是我到目前为止: Private Sub CommandButton1_Click() Dim tbl As Table Dim row As row Set tbl = ActiveDocument.Tables(3) Set row = tbl.Rows.Add(BeforeRow:=tbl.Rows(1)) tbl.Rows(1).Range.FormattedText = tbl.Rows(2).Range.FormattedText '~~~> This is required as the above code inserts a blank row in between tbl.Rows(2).Delete Dim objExcel As Excel.Application Dim exWb As Excel.Workbook On […]

Word VBA – 使用定义的名称从excel插入数据

我有一个Excel工作表中的一些数据。 工作表中的每个单元格都有一个定义的名称。 我也有一个书签定义的文字文件。 每个书签与Excel中的单元格具有相同的名称。 我有我的VBA代码。 现在,我正在尝试1.转到Word 2中的每个书签。转到excel并转到具有相同定义名称的单元格。3.将单元格中的数据插入单词中的书签位置。 这是我有: Dim wb As Excel.Workbook Dim excelPath As String Dim numBM As Integer Dim countBM As Integer Dim currentBM As String numBM = ActiveDocument.Bookmarks.Count excelPath = getFilePath() 'separate function to get the location of the excel file Set wb = Excel.Workbooks.Open(excelPath) For countBM = 1 To numBM currentBM […]

在Word / Excel中的VBA返回错误charchter设置

我正努力让我的代码显示出来。 contentType = "application/x-www-form-urlencoded; charset=utf-8" Set O = New HTMLDocument Set objRequest = CreateObject("MSXML2.XMLHTTP") 'CreateObject("MSXML2.ServerXMLHTTP") ' With objRequest .Open "POST", my_url, False '.setRequestHeader "Content-Type", contentType .setRequestHeader "Content-Type", "application/x-www-form-urlencoded; charset=iso-8859-1" .send End With O.body.innerHTML = objRequest.responseText Debug.Print O.body.innerHTML 这里是输出348,Kim Sk?n,KS,0,应该是Skåtun 如果我打开它在IE浏览器(显示正确),看看源代码我得到这个: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <title>Logg skjema Ansatt liste</title> <meta http-equiv="Content-Type" content="text/html; […]

将活动的打开的文档保存为pdf文件

我有以下的代码,从Excel中复制范围单元格的值,并粘贴为新的Word文档中的图片。 我想将活动文档保存为文件名称的pdf文件作为单元格“A2”中的值。 如果你可以帮助我在下面的代码中添加相同的东西,这将是一个很好的帮助。 Sub Picture() Dim objWord, objDoc As Object ActiveWindow.View = xlNormalView Range("A2:K25").Select Selection.CopyPicture Appearance:=xlScreen, Format:=xlPicture Set objWord = CreateObject("Word.Application") Set objDoc = objWord.Documents.Add objWord.Visible = True objWord.Selection.Paste objWord.Selection.TypeParagraph End Sub

导出Microsoft Office 16.0 Office Library并将其用于Excel 2013

我用Excel 2016创build一个Excel表格与VBA程序自动生成一个Word文档报告。 在旧版Office库上使用Excel 2013时,该macros会生成编译错误。 我尝试了以下没有成功: 使用旧版本的Excel来保存macros(没有改进)。 改变其他线程上提出的代码(例如:Word.Application – > Object)。 主要的问题是程序长度大约2000行,当我修复某些东西的时候,另外一个编译错误会在几行之后出现。 另外,Word文档中的格式也会改变。 更新到Office 2016不是由于与其他程序的各种兼容性原因的解决scheme。 我可以看到唯一剩下的解决scheme是将Microsoft Office 16.0 Office库和Microsoft Excel 16.0库导出到运行Excel 2013的计算机,并将它们添加到VBA引用中。 我找不到这两个库。 path显示在“工具” – >“引用”窗口中,但由于窗口太短(当然无法resize),所以会被剪切掉。 2个库的path和文件名是什么? 你认为这个解决scheme会起作用吗?如果没有,你知道一个更好的解决方法吗?