主题:请教:VBA中我无法理解的WORD行、列问题
VBA中我无法理解的WORD行、列问题,请教熟悉VBA的狐友
定义表格对象
word_表 = oleApp.ActiveDocument.Tables(1)
定义行对象
word_行 = word_表.rows
word_1行 = word_表.rows(1)
我在应用中发现,行对象《rows》任何状况都存在,但《rows(n)》有的时候不存在。表现为:
1.自己在程序中建立的word表格,行对象都存在
oleApp = CREATEOBJECT('Word.Application')
m_表格行数=20
m_表格列数=12
oleApp.ActiveDocument.Tables.Add(oleApp.Selection.Range,m_表格行数,m_表格列数)
word_表 = oleApp.ActiveDocument.Tables(1)
word_表.Rows.Height=28.3 && 表格所有的行高度=28.3磅
word_表.Rows(1).Height=20 && 表格第一行高度=20磅
word_表.Rows(2).Height=20 && 表格第一行高度=20磅
2.在打开的已经存在的word文档中,rows(n)对象不存在。
word_路径='D:\'
word_文件='我的表格.DOC' && word文档中有表格
oleApp = CREATEOBJECT('Word.Application')
oleApp.ChangeFileOpenDirectory( word_路径 ) && 改变工作目录
oleApp.Documents.Open(word_文件,.f.,.t.) && 只读打开文件
oleApp.ActiveWindow.ActivePane.View.Zoom.Percentage = 100
oleApp.ActiveWindow.View.Type = 3 && wdPageView
oleApp.ActiveWindow.windowstate=1
oleApp.Visible=.t. && 显示 word
word_表 = oleApp.ActiveDocument.Tables(1)
? type('word_表.wors') && 显示 O 对象存在
? type('word_表.wors(1)') && 显示 U 对象不存在
郁闷,由于在打开的文档中,无法使用《行》函数,在做通用花名册接收程序时,只好使用《列》函数。可是,列函数中又有问题
c_某单元内容=word_表.Cell(行号,列号).Range.text
若列号超过word当前行的列数
? type('word_表.Cell(行号,列号)') && 显示 U 对象不存在
但若行号超过表格的行数,列号不超过最后一行的列数时,对象缺依然存在
假设表格有20行,你把行号设为1000,对象依然存在
? type('word_表.Cell(1000,1') && 显示 O 对象存在
若读单元的内容
c_某单元内容=word_表.Cell(1000,1).Range.text && 读出的时20行第一列的内容
这个问题困扰了多年,希望诸位指点如何使用《行》对象
定义表格对象
word_表 = oleApp.ActiveDocument.Tables(1)
定义行对象
word_行 = word_表.rows
word_1行 = word_表.rows(1)
我在应用中发现,行对象《rows》任何状况都存在,但《rows(n)》有的时候不存在。表现为:
1.自己在程序中建立的word表格,行对象都存在
oleApp = CREATEOBJECT('Word.Application')
m_表格行数=20
m_表格列数=12
oleApp.ActiveDocument.Tables.Add(oleApp.Selection.Range,m_表格行数,m_表格列数)
word_表 = oleApp.ActiveDocument.Tables(1)
word_表.Rows.Height=28.3 && 表格所有的行高度=28.3磅
word_表.Rows(1).Height=20 && 表格第一行高度=20磅
word_表.Rows(2).Height=20 && 表格第一行高度=20磅
2.在打开的已经存在的word文档中,rows(n)对象不存在。
word_路径='D:\'
word_文件='我的表格.DOC' && word文档中有表格
oleApp = CREATEOBJECT('Word.Application')
oleApp.ChangeFileOpenDirectory( word_路径 ) && 改变工作目录
oleApp.Documents.Open(word_文件,.f.,.t.) && 只读打开文件
oleApp.ActiveWindow.ActivePane.View.Zoom.Percentage = 100
oleApp.ActiveWindow.View.Type = 3 && wdPageView
oleApp.ActiveWindow.windowstate=1
oleApp.Visible=.t. && 显示 word
word_表 = oleApp.ActiveDocument.Tables(1)
? type('word_表.wors') && 显示 O 对象存在
? type('word_表.wors(1)') && 显示 U 对象不存在
郁闷,由于在打开的文档中,无法使用《行》函数,在做通用花名册接收程序时,只好使用《列》函数。可是,列函数中又有问题
c_某单元内容=word_表.Cell(行号,列号).Range.text
若列号超过word当前行的列数
? type('word_表.Cell(行号,列号)') && 显示 U 对象不存在
但若行号超过表格的行数,列号不超过最后一行的列数时,对象缺依然存在
假设表格有20行,你把行号设为1000,对象依然存在
? type('word_表.Cell(1000,1') && 显示 O 对象存在
若读单元的内容
c_某单元内容=word_表.Cell(1000,1).Range.text && 读出的时20行第一列的内容
这个问题困扰了多年,希望诸位指点如何使用《行》对象