excel range方法(Range范围的调整及EXCEL单元格及图表插入)
excel range方法(Range范围的调整及EXCEL单元格及图表插入)2)End 必需 Long 范围的结束字符位置。1)Start 必需 Long 范围的起始字符位置。语法:expression. SetRange(Start End)其中expression 是必需的,是一个代表Range对象的变量参数:
【分享成果,随喜正能量】不要对失去过于纠结,这不仅有利于让你放下曾经的美好事物,也有利于让你在面对现在所拥有的一切,能够更加安心、更加踏实。。
《VBA之Word应用》,是我推出第八套教程,教程是专门讲解VBA在Word中的应用,围绕“面向对象编程”讲解,首先让大家认识Word中VBA的对象,以及对象的属性、方法,然后通过实例让大家感受到Word VBA 的妙处。本套教程共三册十六章,今日内容第六章 “Word中的Range对象(下)”第3节:Range范围的调整及EXCEL单元格及图表插入
第三节 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方法,后者用于在给出起始和结束位置的情况下创建范围。
该方法粘贴选定的表格单元格,并为其设置指定的格式。
语法: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
代码截图:
代码解读:
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工作表的界面如下:
代码运行的提示框:
我们在当前文档中可以看一下图表的格式,会发现这个图表是图片格式的。
今日内容回向:
1 Word中Range对象的SetRange 方法、PasteAndFormat方法、PasteSpecial 方法的意义是什么?
2 如何利用VBA插入单元格及图表?
本讲内容参考程序文件:Doc 006文档.docm
我20多年的VBA实践经验,全部浓缩在下面的各个教程中:
【分享成果,随喜正能量】得与失,是一种选择,也是一种放弃,没有一种选择十全十美,没有一次决定万无一失。让自己豁达起来对于已经失去的东西,你或许也应该庆幸,它们不会再打扰你的内心。