vba:有表格情况下word的range.text长度与range.end不一致(range为...
Dim ss As StringDim st As StringDim i As Integerss = ActiveDocument.Range.TextFor i = 1 To Len(ss)st = st & "[" & Mid(ss, i, 1) & "(" & Asc(Mid(ss, i, 1)) & ")" & "]"Next iMsgBox st你会看到每个单元格后面都是有一个 asc码为13 和 7 的字符。
asc码为13 是回车 每个单元格里面都有回车,至于asc为7的字符估计是表格的分隔符吧。
你可以用replace ss = Replace(ActiveDocument.Range.Text, Chr(7), "")
excel vba 怎么表示range中的内容
range的常见用法1.表示单元格 range("A1")表示第一行第一列的单元格,实质上于cells(1,1)效果一样。
两者在这种情况下是一样的,但是两者的关系可以这样理解,range对象是单元格对象的集合。
range对象在表示单元格的时候不可以像cells(i,j)一样range("ij")表示的,这是要注意的一点!2.表示一个连续的区域 range对象表示连续的区域有两种表达:第一是range("起始单元格","结束单元格"),第二是range("起始单元格:结束单元格"),如下图我要选择(a1:b4)这个区域,程序:Sub 对象range()Range("a1", "b4").SelectRange("a2:b4").SelectEnd Sub3.表示一个不连续的区域 对于不连续的区域,range的表达是:range("起始单元格1:结束单元格1,起始单元格2:结束单元格2"),如:我要选择(a1:b2)和(b3:c4)连个区域程序:Sub 对象range()Range("a1:b2,c3:d4").SelectEnd Sub4.表示行和列 range既然可与表示区域,那么行和列也可以表示的,例如,我想选择第一行,则可以这样range("1:1"),如果想表示第一列range("a:a")程序:Sub range用法()Range("1:1").SelectRange("a:a").SelectEnd Sub5.range的copy方法 range对象选中一个区域后,可对这个区域进行复制操作的程序:Sub range用法()Range("a1:b4").CopyEnd Sub6.range对象于With结合 range对象和with结合起来使用,可以使程序变得非常简单,看一下下面的实例吧:程序:Sub range用法()With Range("a1").Font .Size = 16 .ColorIndex = 24 .FontStyle = "bold"End WithEnd Sub...
怎样在Word中用VBA操作表格
使用VBA操作Word表格 一、生成表格 Private Sub CreateTable(mRows As Integer, mColumns) Dim mRange As Range Set mRange = ActiveDocument.Range mRange.SetRange Start:=ActiveDocument.Range.End, End:=ActiveDocument.Range.End Set SelfGenTable = ActiveDocument.Tables.Add(Range:=mRange, NumRows:=mRows, NumColumns:=mColumns) End Sub 上面过程的作用是在活动文档的末尾插入一个mRows行,mColumns列的表格。
二、在读写表格中的单元格 写入单元格使用如下代码: TableObject.Cell(Row:=curRow, Column:=curColumn).Range.InsertAfter "文本" 上面代码的做用时在curRow行,curColumn列处插入字符“文本”。
其中TableObject为表格对象,如果使用了生成表格中的例子,那么可以用SelfGenTable来替代TableObject。
三、调整单元格对齐方式 水平对齐设置 Selection.ParagraphFormat.Alignment=水平对齐常数(具体的常数可以查看帮助文件的说明) 如何选择单元格? 选定特定单元格 TableObject.Cell(Row:=1,Column:=1).Select'选定单元格1,1 选定行 TableObject.Rows(i).Select'选定第i行 选定列 TableObject.Columns(i).Select'选定第i列 选定整个表格 TableObject.Select 首先执行表格元素选择程序,然后再使用Selection.ParagraphFormat.Alignment设置对齐方式。
垂直对齐方式 Selection.Cells.VerticalAlignment=垂直对齐常数 也是首先选择表格元素,可以使单个单元格,单个行、单个列或者整个表格。
似乎也可以同时选择多个单元格、多个行、多个列,有兴趣的朋友可以自行寻找答案。
四、设置表格边线类型 下面的代码对整个表格的所有边线设置成细实线: SelfGenTable.Select With Selection .Borders(wdBorderBottom).LineStyle = wdLineStyleSingle .Borders(wdBorderLeft).LineStyle = wdLineStyleSingle .Borders(wdBorderRight).LineStyle = wdLineStyleSingle .Borders(wdBorderTop).LineStyle = wdLineStyleSingle .Borders(wdBorderHorizontal).LineStyle = wdLineStyleSingle Borders(wdBorderVertical).LineStyle = wdLineStyleSingle End With 同样是对Selection进行设置,所以可以依照上面的方法对特定的单元格、行或者列的边线样式进行分别设置,这里就不再列举了。
五、调整表格尺寸 下面的代码对一个六列的表格设置宽度,宽度采用百分比宽度,从左至右的宽度百分比依次为:30,10,10,30,10,10: Dim WidthP(0 To 2) As Integer Dim j As Integer dim i as Integer WidthP(0) = 30 WidthP(1) = 10 WidthP(2) = 10 j = 0 For i = 0 To SelfGenTable.Columns.Count - 1 If j > 2 Then j = 0 End If SelfGenTable.Columns(i + 1).PreferredWidthType = wdPreferredWidthPercent SelfGenTable.Columns(i + 1).PreferredWidth = WidthP(j) j = j + 1 Next 上面的代码通过Columns的PreferredWidthType属性设置表格列宽的形式,这里选择的是百分比列宽,可以根据自己的实际情况选择其他列宽形式,然后再设置相应的数值。
表格的行高请读者以此类推(实际上我还没设置过行高,都用自动生成的就够了) =============================================== 编写操作表格的程序时需要注意,Word表格的行列起始值为1,而不是0。
=============================================== 下面是一个拆分字符串的代码,当插入表格的文本过长时,可以设定一个长度,超过这个长度就进行回车,这样保证在设定的单元格宽度内能够写下长文本。
单元格的高度会自动调整以使文本能完整的显示,这也就是我为什么没有通过代码设置单元格高度的原因。
Private Function FoldText(mLen As Integer, mStr As String) As String '折叠文字函数,mLen为折叠前的文字长度,mStr为文字的内容 Dim i As Integer Dim tmpStr(0 To 1) As String '临时字符串 If Len(mStr) > mLen Then Do While Len(mStr) > mLen tmpStr(0) = Left(mStr, mLen) mStr = Right(mStr, Len(mStr) - mLen) tmpStr(1) = tmpStr(1) + tmpStr(0) + vbCrLf Loop tmpStr(1) = tmpStr(1) + mStr Else tmpStr(1) = mStr
怎样在Word中用VBA操作表格
使用VBA操作Word表格 一、生成表格 Private Sub CreateTable(mRows As Integer, mColumns) Dim mRange As Range Set mRange = ActiveDocument.Range mRange.SetRange Start:=ActiveDocument.Range.End, End:=ActiveDocument.Range.End Set SelfGenTable = ActiveDocument.Tables.Add(Range:=mRange, NumRows:=mRows, NumColumns:=mColumns) End Sub 上面过程的作用是在活动文档的末尾插入一个mRows行,mColumns列的表格。
二、在读写表格中的单元格 写入单元格使用如下代码: TableObject.Cell(Row:=curRow, Column:=curColumn).Range.InsertAfter "文本" 上面代码的做用时在curRow行,curColumn列处插入字符“文本”。
其中TableObject为表格对象,如果使用了生成表格中的例子,那么可以用SelfGenTable来替代TableObject。
三、调整单元格对齐方式 水平对齐设置 Selection.ParagraphFormat.Alignment=水平对齐常数(具体的常数可以查看帮助文件的说明) 如何选择单元格? 选定特定单元格 TableObject.Cell(Row:=1,Column:=1).Select'选定单元格1,1 选定行 TableObject.Rows(i).Select'选定第i行 选定列 TableObject.Columns(i).Select'选定第i列 选定整个表格 TableObject.Select 首先执行表格元素选择程序,然后再使用Selection.ParagraphFormat.Alignment设置对齐方式。
垂直对齐方式 Selection.Cells.VerticalAlignment=垂直对齐常数 也是首先选择表格元素,可以使单个单元格,单个行、单个列或者整个表格。
似乎也可以同时选择多个单元格、多个行、多个列,有兴趣的朋友可以自行寻找答案。
四、设置表格边线类型 下面的代码对整个表格的所有边线设置成细实线: SelfGenTable.Select With Selection .Borders(wdBorderBottom).LineStyle = wdLineStyleSingle .Borders(wdBorderLeft).LineStyle = wdLineStyleSingle .Borders(wdBorderRight).LineStyle = wdLineStyleSingle .Borders(wdBorderTop).LineStyle = wdLineStyleSingle .Borders(wdBorderHorizontal).LineStyle = wdLineStyleSingle Borders(wdBorderVertical).LineStyle = wdLineStyleSingle End With 同样是对Selection进行设置,所以可以依照上面的方法对特定的单元格、行或者列的边线样式进行分别设置,这里就不再列举了。
五、调整表格尺寸 下面的代码对一个六列的表格设置宽度,宽度采用百分比宽度,从左至右的宽度百分比依次为:30,10,10,30,10,10: Dim WidthP(0 To 2) As Integer Dim j As Integer dim i as Integer WidthP(0) = 30 WidthP(1) = 10 WidthP(2) = 10 j = 0 For i = 0 To SelfGenTable.Columns.Count - 1 If j > 2 Then j = 0 End If SelfGenTable.Columns(i + 1).PreferredWidthType = wdPreferredWidthPercent SelfGenTable.Columns(i + 1).PreferredWidth = WidthP(j) j = j + 1 Next 上面的代码通过Columns的PreferredWidthType属性设置表格列宽的形式,这里选择的是百分比列宽,可以根据自己的实际情况选择其他列宽形式,然后再设置相应的数值。
表格的行高请读者以此类推(实际上我还没设置过行高,都用自动生成的就够了) =============================================== 编写操作表格的程序时需要注意,Word表格的行列起始值为1,而不是0。
=============================================== 下面是一个拆分字符串的代码,当插入表格的文本过长时,可以设定一个长度,超过这个长度就进行回车,这样保证在设定的单元格宽度内能够写下长文本。
单元格的高度会自动调整以使文本能完整的显示,这也就是我为什么没有通过代码设置单元格高度的原因。
Private Function FoldText(mLen As Integer, mStr As String) As String '折叠文字函数,mLen为折叠前的文字长度,mStr为文字的内容 Dim i As Integer Dim tmpStr(0 To 1) As String '临时字符串 If Len(mStr) > mLen Then Do While Len(mStr) > mLen tmpStr(0) = Left(mStr, mLen) mStr = Right(mStr, Len(mStr) - mLen) tmpStr(1) = tmpStr(1) + tmpStr(0) + vbCrLf Loop tmpStr(1) = tmpStr(1) + mStr Else tmpStr(1) = mStr
如何在word中用vba在一个range对象的前部插入段落标记(?
(1) ActiveDocument.Range(Start:=0, End:=10) '表示当前文档前10个字符所组成的一个Range对象 (2) Set myRange = ActiveDocument.Range( _ Start:=ActiveDocument.Paragraphs(2).Range.Start, _ End:=ActiveDocument.Paragraphs(4).Range.End) '将当前文档第2段至第4段设置为一个Range对象 (3) ActiveDocument.Paragraphs(1).Range.Copy '复制当前文档中的第一段 (4) Selection.Copy Documents.Add.Content.Paste '复制所选内容到新文档中 (5) ActiveDocument.Bookmarks("Book1").Copy Name:="Book2" '将Book2书签复制Book1书签标记的位置 (6) Selection.GoTo What:=wdGoToLine, Which:=wdGoToAbsolute, Count:=4 '将所选内容移至文档中的第4行 (7) Selection.GoTo What:=wdGoToTable, Which:=wdGoToNext '将所选内容移至下一个表格的第1个单元格 (8) Selection.Range.AutoFormat '为所选内容套用格式 (9) ActiveDocument.Content.Font.Name = "Arial" '将当前文档的字体设置为斜体 (10) ActiveDocument.Content.Select Selection.Delete '将当前文档中的内容删除
Word VBA 读取 任意表格的高度和宽度
操作步骤:1、选中表格,单击鼠标右键,弹出快捷菜单,选择表格属性命令,如图所示;2、弹出表格对话框,选择行选项卡,选中指定高度复选框,在输入框中输入所需要的高度值,如图所示;3、选择列选项卡,选中指定宽度复选框,在输入框中输入所需要的高度值,如图所示;
EXCEL中VBA关于指定单元格的一个问题Range("A1")
假设 Word 文档中有这样一个表格Word VBA 参考代码:Public Sub ReadTableData()MsgBox ActiveDocument.Tables(1).Cell(2, 1).Range.TextEnd Sub运行效果:
转载请注明出处51数据库 » word vba 表格的range
乱佳人53514459