excelrange的用法(Range范围的调整及EXCEL单元格及图表插入)

分享成果,随喜正能量】不要对失去过于纠结,这不仅有利于让你放下曾经的美好事物,也有利于让你在面对现在所拥有的一切,能够更加安心、更加踏实。。

《VBA之Word应用》,是我推出第八套教程,教程是专门讲解VBA在Word中的应用,围绕“面向对象编程”讲解,首先让大家认识Word中VBA的对象,以及对象的属性、方法,然后通过实例让大家感受到Word VBA 的妙处。本套教程共三册十六章,今日内容第六章 “Word中的Range对象(下)”第3节:Range范围的调整及EXCEL单元格及图表插入

excelrange的用法(Range范围的调整及EXCEL单元格及图表插入)(1)

第三节 Range对象的方法(七)

大家好,我们这讲继续Range对象方法的讲解,在上一讲中我们讲解了Range对象的InsertParagraph方法、InsertParagraphAfter方法、InsertParagraphBefore方法,这节我们将讲解SetRange 方法、PasteAndFormat方法、PasteSpecial 方法。

1 Range.SetRange方法

这种方法设置现有范围的起始字符和结束字符的位置。

语法:expression. SetRange(Start, End)

其中expression 是必需的,是一个代表Range对象的变量

参数:

1)Start 必需 Long 范围的起始字符位置。

2)End 必需 Long 范围的结束字符位置。

  • 字符位置值从文章的开头开始,第一个值为0(零)。 将计算所有字符,包括非打印字符。 隐藏字符即便未显示也计算在内。
  • SetRange 方法以重新定义现有的 Range 对象的起始和结束位置。此方法不同于Range方法,后者用于在给出起始和结束位置的情况下创建范围。
2 Range.PasteAndFormat方法

该方法粘贴选定的表格单元格,并为其设置指定的格式。

语法:expression.PasteAndFormat(Type)

其中expression 是必需的,是一个代表Range对象的变量

参数:Type 必需 WdRecoveryType 粘贴所选的表格单元格时使用的格式类型。

WdRecoveryType 枚举值:

wdChart 14 将 Microsoft Office Excel 图表粘贴为嵌入的 OLE 对象

wdChartLinked 15 粘贴 Excel 图表并将其链接到原始 Excel 电子表格

wdChartPicture 13 将 Excel 图表粘贴为图片

wdFormatOriginalFormatting 16 保留所粘贴材料的原始格式

wdFormatPlainText 22 粘贴为无格式的纯文本文字

wdFormatSurroundingFormattingWithEmphasis 20 使所粘贴文本的格式与周围文本的格式匹配

wdListCombineWithExistingList 24 将粘贴的列表与邻近的列表合并.

wdListContinueNumbering 7 使粘贴的列表根据文档中的列表继续编号。

wdListDontMerge 25 不支持.

wdListRestartNumbering 8 对粘贴的列表重新进行编号

wdPasteDefault 0 不支持.

wdSingleCellTable 6 将单个单元格表格粘贴为独立的表格。.

wdSingleCellText 5 将单个单元格粘贴为文本.

wdTableAppendTable 10 通过在所选行之间插入粘贴的行,将粘贴的单元格合并到现有的表格中

wdTableInsertAsRows 11 将粘贴的表格作为行插入到目标表格的两行中间.

wdTableOriginalFormatting 12 粘贴一个追加的表格,而不合并表格样式.

wdTableOverwriteCells 23 粘贴表格单元格并覆盖现有的表格单元格.

wdUseDestinationStylesRecovery 19 使用目标文档中使用的样式.

3 Range.PasteSpecial方法

该方法插入剪贴板中的内容

语法:expression.PasteSpecial (IconIndex, Link, Placement, DisplayAsIcon, DataType, IconFileName, IconLabel)

其中expression 是必需的,是一个代表Range对象的变量

参数:

1) IconIndex 可选 Variant 如果 DisplayAsIcon 为 True,则该自变量是一个数字,对应于要在 IconFilename 指定的程序文件中使用的图标。 图标显示在“更改图标”对话框中:0(零)对应于第一个图标,1 对应于第二个图标,依此类推。 如果此参数被省略,使用的是第一个(默认)图标。

2)Link 可选 Variant 如果为 True,则创建指向“剪贴板”内容源文件的链接。 默认值为 False。

3)Placement 可选 Variant 可以为下列 WdOLEPlacement 常量之一:wdFloatOverText 或 wdInLine。 默认值为 wdInLine。

4)DisplayAsIcon 可选 Variant 如果为 True,则将链接显示为图标。 默认值为 False 。

5)DataType 可选 Variant 剪贴板内容在插入文档后采用的格式。 可以为任意 WdPasteDataType 常量。

6)IconFileName 可选 Variant 如果 DisplayAsIcon 为 True,则此参数是存储要显示的图标的文件的路径和文件名。

7)IconLabel 可选 Variant 如果 DisplayAsIcon 为 True,则此参数是显示在图标下方的文本。

WdPasteDataType 枚举:

wdPasteBitmap 4 位图.

wdPasteDeviceIndependentBitmap 5 与设备无关的位图.

wdPasteEnhancedMetafile 9 增强型图元文件

wdPasteHTML 10 HTML.

wdPasteHyperlink 7 超链接.

wdPasteMetafilePicture 3 图元文件图片.

wdPasteOLEObject 0 OLE 对象.

wdPasteRTF 1 RTF 格式

wdPasteShape 8 形状

wdPasteText 2 文本

4 实例:Range范围的调整及EXCEL单元格及图表插入

下面我们通过一个实例来讲解一下本节的知识点,这个实例中我们先定义一个Range,为当前文档的第二段,然后利用SetRange来扩展这个范围。

之后我们在文档的最后插入一个空的段落,将光标移到这个空段落之处。

紧接着,我们要打开一个Excel文件,从这个文件中,我们把B2单元格复制到剪贴板,并将剪贴板的内容以对象的格式粘贴到光标处。

之后,我们再次在文档的最后插入一个空的段落,将光标移到这个空段落之处。并将Excel文件中的图表复制到剪贴板中,并将剪贴板中的内容粘贴到光标处。

最后关闭Excel文件。

我们先看一下代码:

Sub mynzB()

[代码见教程]

End Sub

代码截图:

excelrange的用法(Range范围的调整及EXCEL单元格及图表插入)(2)

代码解读:

1)Set myRange = ActiveDocument.Paragraphs(2).Range

MsgBox myRange.Text

以上代码设置 myRange 并提示给用户myRange 内容。

2)myRange.SetRange Start:=myRange.Start, _

End:=ActiveDocument.Paragraphs(3).Range.End

MsgBox myRange.Text

以上代码调整 myRange的范围并提示给用户myRange 内容。

3) ActiveDocument.Content.InsertParagraphAfter

myRange.SetRange Start:=ActiveDocument.Paragraphs(ActiveDocument.Paragraphs.Count).Range.Start, _

End:=ActiveDocument.Paragraphs(ActiveDocument.Paragraphs.Count).Range.End - 1

myRange.Select

以上代码在活动文档的末尾插入一个段落,并将光标位置调整到最后。

4)Set myEXL = CreateObject("excel.application")

myfile = "EXCEL工作簿.XLSX"

myEXL.workbooks.Open ActiveDocument.Path & "\" & myfile

myEXL.Visible = True

设置要打开的文件,并打开这个文件。

5)myEXL.Sheets("Sheet1").Range("B2").Copy

Selection.Collapse Direction:=wdCollapseStart

Selection.Range.PasteSpecial DataType:=wdPasteOLEObject

'将单元格B2以单元格的形式粘贴wdPasteOLEObject是单元格的格式,如果是文本的格式可以用wdPasteText。

6) ActiveDocument.Content.InsertParagraphAfter

myRange.SetRange Start:=ActiveDocument.Paragraphs(ActiveDocument.Paragraphs.Count).Range.Start, _

End:=ActiveDocument.Paragraphs(ActiveDocument.Paragraphs.Count).Range.End

myRange.Select

以上代码再次在活动文档的末尾插入一个段落,并重置光标位置

7) myEXL.Sheets("Sheet1").ChartObjects(1).Copy

Selection.PasteAndFormat Type:=wdChartPicture

以上代码复制图表并粘贴,粘贴的是图片的格式

8)myEXL.workbooks.Close

Set myEXL = Nothing

以上关闭Excel文件。

最后我们看代码的运行:

Excel工作表的界面如下:

excelrange的用法(Range范围的调整及EXCEL单元格及图表插入)(3)

代码运行的提示框:

excelrange的用法(Range范围的调整及EXCEL单元格及图表插入)(4)

excelrange的用法(Range范围的调整及EXCEL单元格及图表插入)(5)

excelrange的用法(Range范围的调整及EXCEL单元格及图表插入)(6)

我们在当前文档中可以看一下图表的格式,会发现这个图表是图片格式的。

今日内容回向:

1 Word中Range对象的SetRange 方法、PasteAndFormat方法、PasteSpecial 方法的意义是什么?

2 如何利用VBA插入单元格及图表?

本讲内容参考程序文件:Doc 006文档.docm

excelrange的用法(Range范围的调整及EXCEL单元格及图表插入)(7)

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:

excelrange的用法(Range范围的调整及EXCEL单元格及图表插入)(8)

分享成果,随喜正能量】得与失,是一种选择,也是一种放弃,没有一种选择十全十美,没有一次决定万无一失。让自己豁达起来对于已经失去的东西,你或许也应该庆幸,它们不会再打扰你的内心。

,

免责声明:本文仅代表文章作者的个人观点,与本站无关。其原创性、真实性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容文字的真实性、完整性和原创性本站不作任何保证或承诺,请读者仅作参考,并自行核实相关内容。文章投诉邮箱:anhduc.ph@yahoo.com

    分享
    投诉
    首页