如何用VB.NET在word上创建多表
我的问题是。我想做一个循环,因为我要创建多个表。问题是,当循环occours时,它给了我一个错误,告诉我like列(2)的大小已经过调整,并且是它的两倍。。。所以我想我应该创建一个像“Tabela2”这样的变量,但是我怎么能创建一个动态变量呢如何用VB.NET在word上创建多表,vb.net,loops,dynamic,ms-word,office-interop,Vb.net,Loops,Dynamic,Ms Word,Office Interop,我的问题是。我想做一个循环,因为我要创建多个表。问题是,当循环occours时,它给了我一个错误,告诉我like列(2)的大小已经过调整,并且是它的两倍。。。所以我想我应该创建一个像“Tabela2”这样的变量,但是我怎么能创建一个动态变量呢 Dim Linha3 = WordDoc.Paragraphs.Add Dim Tabela = WordDoc.Tables.Add(Linha3.Range, 7, 5) Tabela.Range.Fo
Dim Linha3 = WordDoc.Paragraphs.Add
Dim Tabela = WordDoc.Tables.Add(Linha3.Range, 7, 5)
Tabela.Range.Font.Name = "Calibri"
Tabela.Range.Font.Size = 8
Tabela.Columns(2).Width = 50
Tabela.Columns(3).Width = 150
Tabela.Columns(4).Width = 80
Tabela.Columns(5).Width = 80
Tabela.Range.ParagraphFormat.Alignment = Microsoft.Office.Interop.Word.WdParagraphAlignment.wdAlignParagraphCenter
Tabela.Cell(1, 4).Merge(Tabela.Cell(1, 5))
您必须在Windows桌面应用程序中添加一个Button1控件,并将此代码循环用于i=1到3-这里3是要添加到Word文档中的表的计数。添加更多表的内容是。我的代码如下:
Imports Microsoft.Office.Interop
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim objApp = New Word.Application
Dim objDoc As Word.Document
'For New Page = Word.WdBreakType.wdPageBreak
'For New section without a corresponding page break = Word.WdBreakType.wdSectionBreakContinuous
Dim objPageBreak As Object = Word.WdBreakType.wdSectionBreakContinuous
objApp = CreateObject("Word.Application")
objApp.Visible = True
objDoc = objApp.Documents.Add
For i = 1 To 3
CreateTableInWordDocument(objDoc.Bookmarks.Item("\endofdoc").Range, objDoc, objApp)
objDoc.Bookmarks.Item("\endofdoc").Range.InsertBreak(objPageBreak)
Next
End Sub
Private Sub CreateTableInWordDocument(objRange As Word.Range, objDoc As Word.Document, objApp As Word.Application)
Dim objTable As Word.Table
objTable = objRange.Tables.Add(objRange, 7, 5)
objTable.Borders.Enable = True
objTable.Borders.OutsideLineStyle = Word.WdLineStyle.wdLineStyleDouble
objTable.Borders.InsideLineStyle = Word.WdLineStyle.wdLineStyleSingle
Dim r As Integer, c As Integer
For r = 1 To 7
For c = 1 To 5
objTable.Cell(r, c).Range.Text = "Row" & r & " Column" & c
Next
Next
objTable.Rows.Item(1).Range.Font.Bold = True
objTable.Rows.Item(1).Range.Font.Italic = True
Me.Close()
End Sub
End Class
“WordDoc.parations.Add”与我在WordDoc上使用的不同。我在文档的其余部分使用了“Linha”,而不是Linha3。Idk为什么会产生差异,但这就是给我错误的原因。
所以我把它改成了“Linha”,效果很好,对一些单元格的文本进行了一些自定义编辑
Dim Tabela = WordDoc.Tables.Add(Linha3.Range, 7, 5)
答案就是不要再加一个单词,段落,你应该很好
Dim WordDoc = WordApp.Documents.Add
Dim Linha = WordDoc.Paragraphs.Add