Vba 在只有一行的表的第一行之后添加一行
我需要在Vba 在只有一行的表的第一行之后添加一行,vba,ms-word,rows,Vba,Ms Word,Rows,我需要在MSWord文档的第一行之后添加一行。文档已经有一行和两列,第一个单元格中包含Country,第二个单元格中包含Partner作为两个单元格的值。以下代码的问题是它只能处理至少两行 宏应该能够在两列中添加行和写入预定义字符串。这可以通过两种方式实现 通过在表的末尾添加一行并到达它并写入字符串。如果我这样做了,那么我的问题是如何到达表的最后一行 通过每次添加第二行,如以下代码中所述 Set doc = Documents.Open("C:\Users\dell\Desktop\LATAM.
MSWord文档的第一行之后添加一行。文档已经有一行和两列,第一个单元格中包含Country
,第二个单元格中包含Partner
作为两个单元格的值。以下代码的问题是它只能处理至少两行
宏应该能够在两列中添加行和写入预定义字符串。这可以通过两种方式实现
通过在表的末尾添加一行并到达它并写入字符串。如果我这样做了,那么我的问题是如何到达表的最后一行
通过每次添加第二行,如以下代码中所述
Set doc = Documents.Open("C:\Users\dell\Desktop\LATAM.DOCX", , , , , , , , , , , True)
Set rng = doc.Content
rng.Tables(1).Rows.Add (rng.Tables(1).Rows(2)) 'Here I am getting error 'required memeber of collect not exist.
Set Cell = rng.Tables(1).Cell(2, 1)
Set Cell2 = rng.Tables(1).Cell(2, 2)
Cell.Range.Text = UT
If UT = "CROATIA" Then Cell2.Range.Text = "ERSTE SECURITIES ZAGREB"
If UT = "CZECH REPUBLIC" Then Cell2.Range.Text = "ERSTE GROUP"
Latam.docx如下所示:
要求:在宏之后,应该是这样,在添加的单元格中添加值
更新答案:
Set doc = Documents.Open("C:\Users\ibnea\Desktop\List of Countries & Companies CEEMEA & LATAM.DOCX", , , , , , , , , , , True)
Set rng = doc.Content.Tables(1).Rows.Add
rng.Range.Font.Bold = False
rng.Cells(1).Range = UT
rng.Cells(2).Range = UT2
也许我真的不理解你的问题,但当我打开Word文件并创建一个包含1行(作为标题)和2列的表,然后输入“Country”和“Partner”时,我可以使用以下代码在此表中创建一个新行:
Option Explicit
Sub addRow()
Dim tbl As Table
'set tble variable to Table with Index 1 in your document
Set tbl = ActiveDocument.Tables(1)
'add a row to this table at the end
tbl.Rows.Add
'get last row in this table
Dim lastRow As Variant
lastRow = ActiveDocument.Tables(1).Rows.Count
'write to the last row
ActiveDocument.Tables(1).Cell(lastRow, 1).Range = "your value in last row / column 1"
ActiveDocument.Tables(1).Cell(lastRow, 2).Range = "your value in last row / column 2"
End Sub
你说你的名单只有一行。此代码现在添加一行,并在第1列和第2列中填充等号右侧的值。现在还不清楚UT是什么,它来自哪里。但无论如何,您现在可以使用此代码访问最后的单元格。也许我真的不理解您的问题,但当我打开Word文件并创建一个包含1行(作为标题)和2列的表,然后输入“Country”和“Partner”时,我可以使用此代码在此表中创建一个新行:
Option Explicit
Sub addRow()
Dim tbl As Table
'set tble variable to Table with Index 1 in your document
Set tbl = ActiveDocument.Tables(1)
'add a row to this table at the end
tbl.Rows.Add
'get last row in this table
Dim lastRow As Variant
lastRow = ActiveDocument.Tables(1).Rows.Count
'write to the last row
ActiveDocument.Tables(1).Cell(lastRow, 1).Range = "your value in last row / column 1"
ActiveDocument.Tables(1).Cell(lastRow, 2).Range = "your value in last row / column 2"
End Sub
你说你的名单只有一行。此代码现在添加一行,并在第1列和第2列中填充等号右侧的值。现在还不清楚UT是什么,它来自哪里。但无论如何,您现在可以使用此代码访问最后的单元格。使用行。添加不带参数的,新行将插入表的末尾。参数(如行的帮助主题中所述。Add
使代码能够在特定行之前插入新行
为了使用新行,请声明一个对象变量,并在创建新行时将该行分配给它。使用表
对象也是一个好主意。这样就可以直接寻址对象,而不必总是使用类似rng.Tables(index).Rows(index)的东西
这不仅使读写更简单,而且执行速度更快
因此,根据问题中的代码,我的建议是:
Dim tbl as Word.Table, rw as Word.Row
Set tbl = rng.Tables(1)
Set rw = tbl.Rows.Add
rw.Cells(1).Range.Text = "cell content"
rw.Cells(2).Range.Text = "other cell content"
使用行。添加不带参数的
,新行将插入表的末尾。参数(如行的帮助主题中所述。添加
使代码能够在特定行之前插入新行
为了使用新行,请声明一个对象变量,并在创建新行时将该行分配给它。使用表
对象也是一个好主意。这样就可以直接寻址对象,而不必总是使用类似rng.Tables(index).Rows(index)的东西
这不仅使读写更简单,而且执行速度更快
因此,根据问题中的代码,我的建议是:
Dim tbl as Word.Table, rw as Word.Row
Set tbl = rng.Tables(1)
Set rw = tbl.Rows.Add
rw.Cells(1).Range.Text = "cell content"
rw.Cells(2).Range.Text = "other cell content"
保留括号和括号中的所有内容(注释掉)然后再试一次,只有行。添加行后添加
我需要在其中写入值。这是如何做到的。第一次文档
只有一行,但第二次运行宏后,文档
将包含两行,依此类推。根据您的建议行。添加
我如何才能将值写入添加的行?@Cind我想我重新措辞了我的问题,请看一看,把括号和括号里的东西都去掉(把它注释掉)然后再试一次,只有行。添加行后添加
我需要在其中写入值。这是如何做到的。第一次文档
只有一行,但第二次运行宏后,文档
将包含两行,依此类推。根据您的建议行。添加
我如何才能将值写入添加的行?@Cind我想我重新表述我的问题,请看一看,如果您在出现错误的行中删除此“(rng.Tables(1).Rows(2)),那么它应该可以工作。“rng.Tables(1).Rows.Add”就足够了,因为我正在处理范围,所以它不是ActiveDocument
。一行作为标题,两列有“Country”“Partner”已写入文档.1->因为我正在处理范围,所以它不是ActiveDocument
.2->一行作为标题,两列带有“Country”“Partner”已在文档中写入。3->是否有方法写入字符串而不加粗???@IbneAshiq请记住:在堆栈溢出时,每个问题一个查询。请不要继续在注释中扩展您的要求。针对新问题提出新问题。如果删除此“(rng.Tables(1).Rows(2))”在出现错误的行中,“rng.Tables(1).Rows.Add”是足够的,因为我正在处理范围,所以它不是ActiveDocument
。一行作为标题,两列有“Country”“Partner”已写入文档.1->因为我正在处理范围,所以它不是ActiveDocument
.2->一行作为标题,两列带有“Country”“Partner”已在文档中写入。3->是否有方法写入字符串而不加粗???@IbneAshiq请记住:在堆栈溢出中,每个问题一个查询。请不要继续在注释中扩展您的要求。针对新问题提出新问题。