VB.NET操作WORD,VBA

1 Public Class WordOpLib

2

3

4 Private oWordApplic As Word.ApplicationClass

5 Private oDocument As Word.Document

6 Private oRange As Word.Range

7 Private oShape As Word.Shape

8 Private oSelection As Word.Selection

9

10

11 Public Sub New()

12 '激活com word接口

13 oWordApplic = New Word.ApplicationClass

14 oWordApplic.Visible = False

15

16 End Sub

17 '设置选定文本

18 Public Sub SetRange(ByVal para As Integer)

19 oRange = oDocument.Paragraphs(para).Range

20 oRange.Select()

21 End Sub

22 Public Sub SetRange(ByVal para As Integer, ByVal sent As Integer)

23 oRange = oDocument.Paragraphs(para).Range.Sentences(sent)

24 oRange.Select()

25 End Sub

26 Public Sub SetRange(ByVal startpoint As Integer, ByVal endpoint As Integer, ByVal flag As Boolean)

27 If flag = True Then

28 oRange = oDocument.Range(startpoint, endpoint)

29 oRange.Select()

30 Else

31

32 End If

33 End Sub

34

35 '生成空的新文档

36 Public Sub NewDocument()

37 Dim missing = System.Reflection.Missing.Value

38 Dim isVisible As Boolean = True

39 oDocument = oWordApplic.Documents.Add(missing, missing, missing, missing)

40 oDocument.Activate()

41 End Sub

42 '使用模板生成新文档

43 Public Sub NewDocWithModel(ByVal FileName As String)

44 Dim missing = System.Reflection.Missing.Value

45 Dim isVisible As Boolean = False

46 Dim strName As String

47 strName = FileName

48 oDocument = oWordApplic.Documents.Add(strName, missing, missing, isVisible)

49 oDocument.Activate()

50 End Sub

51 '打开已有文档

52 Public Sub OpenFile(ByVal FileName As String)

53 Dim strName As String

54 Dim isReadOnly As Boolean

55 Dim isVisible As Boolean

56 Dim missing = System.Reflection.Missing.Value

57

58 strName = FileName

59 isReadOnly = False

60 isVisible = True

61

62 oDocument = oWordApplic.Documents.Open(strName, missing, isReadOnly, missing, missing, missing, missing, missing, missing, missing, missing, isVisible, missing, missing, missing, missing)

63 oDocument.Activate()

64

65 End Sub

66 Public Sub OpenFile(ByVal FileName As String, ByVal isReadOnly As Boolean)

67 Dim strName As String

68 Dim isVisible As Boolean

69 Dim missing = System.Reflection.Missing.Value

70

71 strName = FileName

72 isVisible = True

73

74 oDocument = oWordApplic.Documents.Open(strName, missing, isReadOnly, missing, missing, missing, missing, missing, missing, missing, missing, isVisible, missing, missing, missing, missing)

75 oDocument.Activate()

76 End Sub

77 '退出Word

78 Public Sub Quit()

79 Dim missing = System.Reflection.Missing.Value

80 oWordApplic.Quit()

81 System.Runtime.InteropServices.Marshal.ReleaseComObject(oWordApplic)

82 oWordApplic = Nothing

83 End Sub

84 '关闭所有打开的文档

85 Public Sub CloseAllDocuments()

86 oWordApplic.Documents.Close(Word.WdSaveOptions.wdDoNotSaveChanges)

87 End Sub

88 '关闭当前的文档

89 Public Sub CloseCurrentDocument()

90

91 oDocument.Close(Word.WdSaveOptions.wdDoNotSaveChanges)

92 End Sub

93 '保存当前文档

94 Public Sub Save()

95 Try

96 oDocument.Save()

97 Catch

98 MsgBox(Err.Description)

99 End Try

100 End Sub

101 '另存为文档

102 Public Sub SaveAs(ByVal FileName As String)

103 Dim strName As String

104 Dim missing = System.Reflection.Missing.Value

105

106 strName = FileName

107

108 oDocument.SaveAs(strName, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing)

109 End Sub

110 '保存为Html文件

111 Public Sub SaveAsHtml(ByVal FileName As String)

112 Dim missing = System.Reflection.Missing.Value

113 Dim strName As String

114

115 strName = FileName

116 Dim format = CInt(Word.WdSaveFormat.wdFormatHTML)

117

118 oDocument.SaveAs(strName, format, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing, missing)

119 End Sub

120 '插入文本

121 Public Sub InsertText(ByVal text As String)

122 oWordApplic.Selection.TypeText(text)

123 End Sub

124 '插入一个空行

125 Public Sub InsertLineBreak()

126 oWordApplic.Selection.TypeParagraph()

127 End Sub

128 '插入指定行数的空行

129 Public Sub InsertLineBreak(ByVal lines As Integer)

130 Dim i As Integer

131 For i = 1 To lines

132 oWordApplic.Selection.TypeParagraph()

133 Next

134 End Sub

135 '插入表格

136 Public Sub InsertTable(ByRef table As DataTable)

137 Dim oTable As Word.Table

138 Dim rowIndex, colIndex, NumRows, NumColumns As Integer

139 rowIndex = 1

140 colIndex = 0

141 If (table.Rows.Count = 0) Then

142 Exit Sub

143 End If

144

145 NumRows = table.Rows.Count + 1

146 NumColumns = table.Columns.Count

147 oTable = oDocument.Tables.Add(oWordApplic.Selection.Range(), NumRows, NumColumns)

148

149

150 '初始化列

151 Dim Row As DataRow

152 Dim Col As DataColumn

153 'For Each Col In table.Columns

154 ' colIndex = colIndex + 1

155 ' oTable.Cell(1, colIndex).Range.InsertAfter(Col.ColumnName)

156 'Next

157

158 '将行添入表格

159 For Each Row In table.Rows

160 rowIndex = rowIndex + 1

161 colIndex = 0

162 For Each Col In table.Columns

163 colIndex = colIndex + 1

164 oTable.Cell(rowIndex, colIndex).Range.InsertAfter(Row(Col.ColumnName))

165 Next

166 Next

167 oTable.Rows(1).Delete()

168 oTable.AllowAutoFit = True

169 oTable.ApplyStyleFirstColumn = True

170 oTable.ApplyStyleHeadingRows = True

171

172 End Sub

173 '插入表格(修改为在原有表格的基础上添加数据)

174 Public Sub InsertTable2(ByRef table As DataTable, ByVal strbmerge As String, ByVal totalrow As Integer)

175 Dim oTable As Word.Table

176 Dim rowIndex, colIndex, NumRows, NumColumns As Integer

177 Dim strm() As String

178 Dim i As Integer

179 rowIndex = 1

180 colIndex = 0

181

182 If (table.Rows.Count = 0) Then

183 Exit Sub

184 End If

185

186 NumRows = table.Rows.Count + 1

187 NumColumns = table.Columns.Count

188 'oTable = oDocument.Tables.Add(oWordApplic.Selection.Range(), NumRows, NumColumns)

189

190

191 '初始化列

192 Dim Row As DataRow

193 Dim Col As DataColumn

194 'For Each Col In table.Columns

195 ' colIndex = colIndex + 1

196 ' oTable.Cell(1, colIndex).Range.InsertAfter(Col.ColumnName)

197 'Next

198

199 '将行添入表格

200 For Each Row In table.Rows

201 colIndex = 0

202 GotoRightCell()

203 oWordApplic.Selection.InsertRows(1)

204 For Each Col In table.Columns

205 GotoRightCell()

206 colIndex = colIndex + 1

207 Try

208 oWordApplic.Selection.TypeText(Row(Col.ColumnName))

209 Catch ex As Exception

210 oWordApplic.Selection.TypeText(" ")

211 End Try

212 'oWordApplic.Selection.Cell(rowIndex, colIndex).Range.InsertAfter(Row(Col.ColumnName))

213 Next

214 Next

215 '如果strbmerge不为空.则要合并相应的行和列

216 If strbmerge.Trim().Length <> 0 Then

217 strm = strbmerge.Split(";")

218 For i = 1 To strm.Length - 1

219 If strm(i).Split(",").Length = 2 Then

220 MergeDouble(totalrow, strm(0), strm(i).Split(",")(1), strm(i).Split(",")(0))

221 End If

222 MergeSingle(totalrow, strm(0), strm(i))

223 Next

224 End If

225 '删除可能多余的一行

226 'GotoRightCell()

227 'GotoDownCell()

228 'oWordApplic.Selection.Rows.Delete()

229 'oTable.AllowAutoFit = True

230 'oTable.ApplyStyleFirstColumn = True

231 'oTable.ApplyStyleHeadingRows = True

232 End Sub

233 '插入表格(专门适应工程结算工程量清单)

234 Public Sub InsertTableQD(ByRef table As DataTable, ByRef table1 As DataTable)

235 Dim oTable As Word.Table

236 Dim rowIndex, colIndex, NumRows, NumColumns As Integer

237 Dim xmmc As String

238 Dim i As Integer

239 Dim j As Integer

240 rowIndex = 1

241 colIndex = 0

242

243 If (table.Rows.Count = 0) Then

244 Exit Sub

245 End If

246

247 NumRows = table.Rows.Count + 1

248 NumColumns = table.Columns.Count

249 'oTable = oDocument.Tables.Add(oWordApplic.Selection.Range(), NumRows, NumColumns)

250

251

252 '初始化列

253 Dim Row As DataRow

254 Dim rowtemp As DataRow

255 Dim row1() As DataRow

256 Dim Col As DataColumn

257 Dim coltemp As DataColumn

258 'For Each Col In table.Columns

259 ' colIndex = colIndex + 1

260 ' oTable.Cell(1, colIndex).Range.InsertAfter(Col.ColumnName)

261 'Next

262

263 '将行添入表格

264 For Each Row In table.Rows

265 colIndex = 0

266 xmmc = Row("项目名称")

267 GotoRightCell()

268 oWordApplic.Selection.InsertRows(1)

269 For Each Col In table.Columns

270 GotoRightCell()

271 Try

272 If (Col.ColumnName = "项目序号") Then

273 oWordApplic.Selection.TypeText(intToUpint(Val(Row(Col.ColumnName))))

274 Else

275 oWordApplic.Selection.TypeText(Row(Col.ColumnName))

276 End If

277 Catch ex As Exception

278 oWordApplic.Selection.TypeText(" ")

279 End Try

280 'oWordApplic.Selection.Cell(rowIndex, colIndex).Range.InsertAfter(Row(Col.ColumnName))

281 Next

282 row1 = table1.Select("项目名称='" + xmmc + "'")

283

284 For i = 0 To row1.Length - 1

285 GotoRightCell()

286 oWordApplic.Selection.InsertRows(1)

287 For j = 0 To table1.Columns.Count - 1

288 If (table1.Columns(j).ColumnName <> "项目名称") Then

289 GotoRightCell()

290 Try

291 oWordApplic.Selection.TypeText(row1(i)(j))

292 Catch ex As Exception

293 oWordApplic.Selection.TypeText(" ")

294 End Try

295 End If

296 'oWordApplic.Selection.Cell(rowIndex, colIndex).Range.InsertAfter(Row(Col.ColumnName))

297 Next

298 Next

299

300

301

302 Next

303 '删除可能多余的一行

304 'GotoRightCell()

305 'GotoDownCell()

306 'oWordApplic.Selection.Rows.Delete()

307 'oTable.AllowAutoFit = True

308 'oTable.ApplyStyleFirstColumn = True

309 'oTable.ApplyStyleHeadingRows = True

310 End Sub

311 '插入表格,为了满足要求,在中间添加一根竖线

312 Public Sub InsertTable3(ByRef table As DataTable, ByVal introw As Integer, ByVal intcol As Integer)

313 Dim rowIndex, colIndex, NumRows, NumColumns As Integer

314 Dim Row As DataRow

315 Dim Col As DataColumn

316 If (table.Rows.Count = 0) Then

317 Exit Sub

318 End If

319 '首先是拆分选中的单元格

320 oDocument.Tables(1).Cell(introw, 3).Split(table.Rows.Count, 2)

321 '选中初始的单元格

322 oDocument.Tables(1).Cell(introw, 3).Select()

323 '将行添入表格

324 For Each Row In table.Rows

325 Try

326 oDocument.Tables(1).Cell(introw, 3).Range.InsertAfter(Row(0))

327 oDocument.Tables(1).Cell(introw, 4).Range.InsertAfter(Row(1))

328 Catch ex As Exception

329 oDocument.Tables(1).Cell(introw, 3).Range.InsertAfter(" ")

330 oDocument.Tables(1).Cell(introw, 4).Range.InsertAfter(" ")

331 End Try

332 introw = introw + 1

333 Next

334 End Sub

335 '设置对齐

336 Public Sub SetAlignment(ByVal strType As String)

337 Select Case strType

338 Case "center"

339 oWordApplic.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphCenter

340 Case "left"

341 oWordApplic.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphLeft

342 Case "right"

343 oWordApplic.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphRight

344 Case "justify"

345 oWordApplic.Selection.ParagraphFormat.Alignment = Word.WdParagraphAlignment.wdAlignParagraphJustify

346 End Select

347 End Sub

348 '设置字体

349 Public Sub SetStyle(ByVal strFont As String)

350 Select Case strFont

351 Case "bold"

352 oWordApplic.Selection.Font.Bold = 1

353 Case "italic"

354 oWordApplic.Selection.Font.Italic = 1

355 Case "underlined"

356 oWordApplic.Selection.Font.Subscript = 1

357 End Select

358 End Sub

359 '取消字体风格

360 Public Sub DissableStyle()

361 oWordApplic.Selection.Font.Bold = 0

362 oWordApplic.Selection.Font.Italic = 0

363 oWordApplic.Selection.Font.Subscript = 0

364 End Sub

365 '设置字体字号

366 Public Sub SetFontSize(ByVal nSize As Integer)

367 oWordApplic.Selection.Font.Size = nSize

368 End Sub

369 '跳过本页

370 Public Sub InsertPageBreak()

371 Dim pBreak As Integer

372 pBreak = CInt(Word.WdBreakType.wdPageBreak)

373 oWordApplic.Selection.InsertBreak(pBreak)

374 End Sub

375 '转到书签

376 Public Sub GotoBookMark(ByVal strBookMark As String)

377 Dim missing = System.Reflection.Missing.Value

378 Dim BookMark = CInt(Word.WdGoToItem.wdGoToBookmark)

379 oWordApplic.Selection.GoTo(BookMark, missing, missing, strBookMark)

380 End Sub

381 '判断书签是否存在

382 Public Function BookMarkExist(ByVal strBookMark As String) As Boolean

383 Dim Exist As Boolean

384 Exist = oDocument.Bookmarks.Exists(strBookMark)

385 Return Exist

386 End Function

387 '替换书签的内容

388 Public Sub ReplaceBookMark(ByVal icurnum As String, ByVal strcontent As String)

389 strcontent = strcontent.Replace("0:00:00", "")

390 oDocument.Bookmarks(icurnum).Select()

391 oWordApplic.Selection.TypeText(strcontent)

392 End Sub

393

394 '得到书签的名称

395 Public Function GetBookMark(ByVal icurnum As String, ByRef bo As Boolean) As String

396 Dim strReturn As String

397 If Right(oDocument.Bookmarks(icurnum).Name, 5) = "TABLE" Then

398 bo = True

399 Dim strTemp As String

400 strTemp = oDocument.Bookmarks(icurnum).Name()

401 strReturn = Mid(strTemp, 1, Len(strTemp) - 5)

402 Else

403 bo = False

404 strReturn = oDocument.Bookmarks(icurnum).Name

405 End If

406 Return strReturn

407 End Function

408 '得到书签的名称

409 Public Function GetBookMark1(ByVal icurnum As String) As String

410 Return oDocument.Bookmarks(icurnum).Name

411 End Function

412 '转到文档结尾

413 Public Sub GotoTheEnd()

414 Dim missing = System.Reflection.Missing.Value

415 Dim unit = Word.WdUnits.wdStory

416 oWordApplic.Selection.EndKey(unit, missing)

417 End Sub

418 '转到文档开头

419 Public Sub GotoTheBegining()

420 Dim missing = System.Reflection.Missing.Value

421 Dim unit = Word.WdUnits.wdStory

422 oWordApplic.Selection.HomeKey(unit, missing)

423 End Sub

424 '删除多余的一行

425 Public Sub DelUnuseRow()

426 oWordApplic.Selection.Rows.Delete()

427 End Sub

428 '转到表格

429 Public Sub GotoTheTable(ByVal ntable As Integer)

430 'Dim missing = System.Reflection.Missing.Value

431 'Dim what = Word.WdGoToItem.wdGoToTable

432 'Dim which = Word.WdGoToDirection.wdGoToFirst

433 'Dim count = ntable

434

435 'oWordApplic.Selection.GoTo(what, which, count, missing)

436 'oWordApplic.Selection.ClearFormatting()

437

438 'oWordApplic.Selection.Text = ""

439 oRange = oDocument.Tables(ntable).Cell(1, 1).Range

440 oRange.Select()

441

442 End Sub

443 '转到表格的某个单元格

444 Public Sub GotoTableCell(ByVal ntable As Integer, ByVal nRow As Integer, ByVal nColumn As Integer)

445 oRange = oDocument.Tables(ntable).Cell(nRow, nColumn).Range

446 oRange.Select()

447 End Sub

448 '表格中转到右面的单元格

449 Public Sub GotoRightCell()

450 Dim missing = System.Reflection.Missing.Value

451 Dim direction = Word.WdUnits.wdCell

452 oWordApplic.Selection.MoveRight(direction, missing, missing)

453 End Sub

454 '表格中转到左面的单元格

455 Public Sub GotoLeftCell()

456 Dim missing = System.Reflection.Missing.Value

457 Dim direction = Word.WdUnits.wdCell

458 oWordApplic.Selection.MoveLeft(direction, missing, missing)

459 End Sub

460 '表格中转到下面的单元格

461 Public Sub GotoDownCell()

462 Dim missing = System.Reflection.Missing.Value

463 Dim direction = Word.WdUnits.wdCell

464 oWordApplic.Selection.MoveDown(direction, missing, missing)

465 End Sub

466 '表格中转到上面的单元格

467 Public Sub GotoUpCell()

468 Dim missing = System.Reflection.Missing.Value

469 Dim direction = Word.WdUnits.wdCell

470 oWordApplic.Selection.MoveUp(direction, missing, missing)

471 End Sub

472 '文档中所有的书签总数

473 Public Function TotalBkM() As Integer

474 Return oDocument.Bookmarks.Count

475 End Function

476 '选中书签

477 Public Sub SelectBkMk(ByVal strName As String)

478 oDocument.Bookmarks.Item(strName).Select()

479 End Sub

480 '插入图片

481 Public Sub InsertPic(ByVal FileName As String)

482 Dim missing = System.Reflection.Missing.Value

483 oWordApplic.Selection.InlineShapes.AddPicture(FileName, False, True, missing).Select()

484 oShape = oWordApplic.Selection.InlineShapes(1).ConvertToShape

485 oWordApplic.Selection.WholeStory()

486 oShape.ZOrder(Microsoft.Office.Core.MsoZOrderCmd.msoSendBehindText)

487 End Sub

488 '统一调整图片的位置.也就是往上面调整图片一半的高度

489 Public Sub SetCurPicHei()

490 Dim e As Word.Shape

491 For Each e In oDocument.Shapes

492 oDocument.Shapes(e.Name).Select()

493 oWordApplic.Selection.ShapeRange.RelativeHorizontalPosition = Word.WdRelativeHorizontalPosition.wdRelativeHorizontalPositionPage

494 oWordApplic.Selection.ShapeRange.RelativeVerticalPosition = Word.WdRelativeVerticalPosition.wdRelativeVerticalPositionParagraph

495 oWordApplic.Selection.ShapeRange.LockAnchor = True

496 'oWordApplic.Selection.ShapeRange.IncrementTop(oDocument.Shapes(e.Name).Height)

497 Next

498 End Sub

499

500 Public Sub SetCurPicHei1()

501 Dim e As Word.Shape

502 For Each e In oDocument.Shapes

503 oDocument.Shapes(e.Name).Select()

504 oWordApplic.Selection.ShapeRange.IncrementTop(oDocument.Shapes(e.Name).Height / 2)

505 Next

506 End Sub

507 Public Sub SetCurPicHei2()

508 Dim e As Word.Shape

509 For Each e In oDocument.Shapes

510 oDocument.Shapes(e.Name).Select()

511 oWordApplic.Selection.ShapeRange.IncrementTop(-oDocument.Shapes(e.Name).Height / 2)

512 Next

513 End Sub

514 Public Function intToUpint(ByVal a As Integer) As String

515 Dim result As String = "一百"

516 Dim a1, a2 As Integer

517 Dim strs() As String = {"零", "一", "二", "三", "四", "五", "六", "七", "八", "九", "十"}

518 If (a <= 10) Then

519 result = strs(a)

520 ElseIf (a < 100) Then

521 a1 = a / 10

522 a2 = a Mod 10

523 If (a = 1) Then

524 result = "十" + strs(a2)

525 End If

526 Else

527 result = strs(a1) + "十" + strs(a2)

528 End If

529 Return result

530 End Function

531 '合并没有参照的某一列,一般来讲对应第一列

532 'itotalrow 总行数

533 'initrow 初始开始的行数,一般情况下该值不为0,没有标题栏的一般为0

534 'intcol 列数

535 Public Sub MergeSingle(ByVal itotalrow As Integer, ByVal initrow As Integer, ByVal intcol As Integer)

536 oDocument.Tables(1).Cell(initrow + 1, intcol).Select()

537 Dim irow As Integer '当前行数

538 Dim strValue As String '循环比较的行初值

539 Dim i As Integer

540 Dim direction = Word.WdUnits.wdLine

541 Dim extend = Word.WdMovementType.wdExtend

542

543 i = 0

544 irow = 1 + initrow '初始值为1

545 For i = 2 + initrow To itotalrow + initrow

546

547 strValue = oDocument.Tables(1).Cell(irow, intcol).Range.Text

548 If (oDocument.Tables(1).Cell(i, intcol).Range.Text = oDocument.Tables(1).Cell(irow, intcol).Range.Text) Then

549 '这是对最后一次处理的特殊情况.

550 If (i = itotalrow + initrow) Then

551 oWordApplic.Selection.MoveDown(direction, (i - irow), extend)

552 If (i - irow >= 1) Then

553 oWordApplic.Selection.Cells.Merge()

554 End If

555 oDocument.Tables(1).Cell(irow, intcol).Range.Text = strValue

556 End If

557 Else

558 oWordApplic.Selection.MoveDown(direction, (i - irow - 1), extend)

559 If (i - irow - 1 >= 1) Then

560 oWordApplic.Selection.Cells.Merge()

561 End If

562 oDocument.Tables(1).Cell(irow, intcol).Range.Text = strValue

563 irow = i

564 oDocument.Tables(1).Cell(irow, intcol).Select()

565 End If

566 Next i

567 End Sub

568 '合并有参照的某一列

569 'itotalrow 总行数

570 'initrow 初始开始的行数,一般情况下该值不为0,没有标题栏的一般为0

571 'intcol 列数

572 'basecol 参照合并的那一列

573 Public Sub MergeDouble(ByVal itotalrow As Integer, ByVal initrow As Integer, ByVal intcol As Integer, ByVal basecol As Integer)

574 oDocument.Tables(1).Cell(initrow + 1, intcol).Select()

575 Dim irow As Integer '当前行数

576 Dim strValue As String '循环比较的行初值

577 Dim i As Integer

578 Dim direction = Word.WdUnits.wdLine

579 Dim extend = Word.WdMovementType.wdExtend

580

581 i = 0

582 irow = 1 + initrow '初始值为1

583 For i = 2 + initrow To itotalrow + initrow

584

585 strValue = oDocument.Tables(1).Cell(irow, intcol).Range.Text

586 If (oDocument.Tables(1).Cell(i, intcol).Range.Text = oDocument.Tables(1).Cell(irow, intcol).Range.Text) And (getdata(i, basecol) = getdata(irow, basecol)) Then

587 '这是对最后一次处理的特殊情况.

588 If (i = itotalrow + initrow) Then

589 oWordApplic.Selection.MoveDown(direction, (i - irow), extend)

590 If (i - irow >= 1) Then

591 oWordApplic.Selection.Cells.Merge()

592 End If

593 oDocument.Tables(1).Cell(irow, intcol).Range.Text = strValue

594 End If

595 Else

596 oWordApplic.Selection.MoveDown(direction, (i - irow - 1), extend)

597 If (i - irow - 1 >= 1) Then

598 oWordApplic.Selection.Cells.Merge()

599 End If

600 oDocument.Tables(1).Cell(irow, intcol).Range.Text = strValue

601 irow = i

602 oDocument.Tables(1).Cell(irow, intcol).Select()

603 End If

604 Next i

605 End Sub

606 '得到某个单元的值,如果为空的话,有两种情况.

607 '其一:是一个合并的单元格,取其上面的值

608 '其二:该单元格本来就是空值

609 Public Function getdata(ByVal introw As Integer, ByVal intcol As Integer) As String

610 Try

611 If (oDocument.Tables(1).Cell(introw, intcol).Range.Text = "" Or (oDocument.Tables(1).Cell(introw, intcol).Range.Text = Nothing)) Then

612 getdata = getdata(introw - 1, intcol)

613 Else

614 getdata = oDocument.Tables(1).Cell(introw, intcol).Range.Text

615 End If

616 Catch ex As Exception

617 getdata = getdata(introw - 1, intcol)

618 End Try

619

620

621 End Function

622End Class