适用于
Workbook 对象
描述
保存指定工作簿所作的改动。
句法
expression.Save
expression
必选。该表达式返回一个 Workbook 对象。
说明
要打开一个工作簿文件,可使用 Open 方法。
要将一个工作簿标记为已保存,而无须真正写入磁盘,可将该工作簿的Saved 属性设为 True。
如果是第一次保存工作簿,可使用 SaveAs 方法为该文件指定文件名。
另见
Open 方法, SaveAs 方法, SaveCopyAs 方法, Saved 属性
示例
本示例保存活动工作簿。
ActiveWorkbook.Save
本示例保存所有打开的工作簿,并关闭 Microsoft Excel。
For Each w In Application.Workbooks
w.Save
Next w
Application.Quit
适用于
Chart 对象,Workbook 对象,Worksheet 对象
描述
将工作表的更改(句法 1)或工作簿的更改(句法 2)保存到另一个不同的文件。
句法 1
expression.SaveAs(Filename,FileFormat,Password,WriteResPassword,ReadOnlyRecommended, CreateBackup, AddToMru, TextCodePage, TextVisualLayout)
句法 2
expression.SaveAs(Filename,FileFormat,Password,WriteResPassword,ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, AddToMru,TextCodePage, TextVisualLayout)
Expression
必选。该表达式返回一个 Chart 对象或 Worksheet 对象(句法 1)或者一个 Workbook 对象(句法 2)。
FilenameVariant 类型,可选。该字符串表示要保存的文件名。可包含完整路径。如果不指定路径, Microsoft Excel 将文件保存到当前文件夹。
FileFormat
Variant 类型,可选。文件的保存格式。有关的有效格式列表另见 FileFormat属性。对于已存在的文件,缺省文件或是最后文件指定格式;对于新建文件,缺省是所使用的Excel版格式。
Password
Variant 类型,可选。为一个区分大小写的字符串(不超过 15 个字符),用于指定文件的保护密码。
WriteResPassword
Variant 类型,可选。该字符串表示文件的写保护密码。如果文件保存时带有密码,但打开文件时不输入密码,则该文件以只读模式打开。
ReadOnlyRecommended
Variant 类型,可选。如果为 True 则在打开文件时显示一条信息,提示该文件以只读模式打开。
CreateBackup
Variant 类型,可选。如果为 True 则创建备份文件。
AccessMode
Variant 类型,可选。工作簿的访问模式。可为下列 XlSaveAsAccessMode常量之一: xlShared(共享清单)、 xlExclusive(独占访问)或 xlNoChange(不更改访问模式)。如果省略本参数,则不更改访问模式。如果保存共享清单时不更改文件名则忽略该参数。要更改访问模式可使用 ExclusiveAccess方法。
ConflictResolution
Variant 类型,可选。指定当工作簿为共享清单时更改冲突的处理方式。可为下列 XlSaveConflictResolution 常量之一: xlUserResolution(显示冲突处理对话框)、 xlLocalSessionChanges(自动接受本地用户的更改)或xlOtherSessionChanges(接受其他用户的更改)。如果省略本参数,则显示冲突处理对话框。
AddToMru
Variant 类型,可选。如果为 True 则将该工作簿添加到最近使用文件的列表中。默认值为 False。
TextCodePage
Variant 类型,可选。不在美国英语版的 Microsoft Excel 中使用。
TextVisualLayoutVariant
类型,可选。不在美国英语版的 Microsoft Excel 中使用。
另见
AutoUpdateFrequency 属性, FileFormat 属性, MultiUserEditing 属性, PersonalViewListSettings 属性,Save 方法, SaveCopyAs 方法, Saved 属性
示例
本示例新建一个工作簿,提示用户输入文件名,然后保存该工作簿。
Set NewBook = Workbooks.Add
DofName = Application.GetSaveAsFilename
Loop Until fName <> False
NewBook.SaveAs Filename:=fName
适用于
Workbook 对象
描述
将指定工作簿的副本保存到文件,但不更改内存中的打开工作簿。
句法
expression.SaveCopyAs(Filename)
expression
必选。该表达式返回一个 Workbook 对象。
Filename
必选。指定副本的文件名。
另见
示例
本示例保存活动工作簿的副本。
ActiveWorkbook.SaveCopyAs "C:\TEMP\XXXX.XLS"
适用于
Workbook 对象
描述
如果指定工作簿从上次保存至今未发生过更改则为 True。Boolean 类型,
可读写。
说明
如果工作簿从未进行保存,则其 Path 属性将返回一空字符串("")。
如果要关闭某个已更改的工作簿,但又不想保存它或者不想出现保存提示,
可将此属性设为 True。
另见
Save 方法, SaveAs 方法, SaveCopyAs 方法
示例
本示例检查当前工作簿是否有未保存的修改,如果有则显示一条信息。
If Not ActiveWorkbook.Saved Then
MsgBox "This workbook contains unsaved changes."
End If
本示例将 Saved 属性设为 True,关闭它所在的工作簿,并放弃所有对该工作簿的修改。
ThisWorkbook.Saved = True
ThisWorkbook.Close
适用于
PivotTable对象,QueryTable 对象
描述
如果数据透视表的数据随工作簿一起保存,本属性为 True。如果仅保存数据透视表的定义,本属性为 False。Boolean 类型,可读写。
对于OLAP数据源,本属性总设为False。
示例
本示例使数据透视表的数据随工作簿一起保存。
Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable
pvtTable.SaveData = True
适用于
DefaultWebOptions 对象
描述
当以 Web 页保存文档时,如果也保存指定区域之外的数据,则其值为True。此数据对于维护公式是很有必要的。如果指定区域之外的数据并不与 Web 页一起保存,则其值为 False。默认值为 True。可读写。Boolean 类型。
说明
如果选择不保存指定区域之外的数据,则公式中对这些数据的引用都将变为静态值。如果数据位于另外的工作表或工作簿中,则公式结果将以静态值保存。
示例
本示例使数据透视表报表的数据随工作簿一起保存。
Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTablepvtTable.
SaveData = True
适用于
Workbook 对象
描述
如果 Microsoft Excel 保存指定工作簿的外部链接值则为 True。Boolean 类型,可读写。
示例
本示例设置 Microsoft Excel 保存当前工作簿的外部链接值。
ActiveWorkbook.SaveLinkValues = True
适用于
PivotCache 对象,QueryTable 对象
描述
如果将 ODBC 连接串中的密码信息与指定查询一起保存则为 True。如果不保存密码信息则为 False。Boolean 类型,可读写。
说明
本属性仅影响 ODBC 查询。
示例
本示例对 SavePassword 属性进行设置,每当保存第一张查询表时都不保存 ODBC 连接串的密码信息。
Worksheets(1).QueryTables(1).SavePassword = False
适用于
Application 对象
描述
保存当前工作区。
句法
expression.SaveWorkspace(Filename)
expression
必选。该表达式返回 Application 对象。
Filename
Variant 类型,可选。用于保存工作区的文件名。
示例
本示例将当前工作区保存为“saved workspace.xlw”。
Application.SaveWorkspace "saved workspace"
适用于
Shape 对象,ShapeRange 集合对象
描述
按指定的比例调整形状的高度。对于图片和 OLE 对象,可以指定是相对于原有大小还是相对于现有大小来调整形状的高度。对于不是图片和 OLE对象的形状,总是相对于现有大小调整其高度。
句法
expression.ScaleHeight(Factor, RelativeToOriginalSize, fScale)
expression
必选。该表达式返回 Shape 或 ShapeRange 对象。
Factor
Single 类型,必选。表示形状调整后的高度与其现有高度或原有高度之间的比例。例如,如果要使矩形增大 50%,就应将本参数指定为 1.5。
RelativeToOriginalSize
Long 类型,必选。若指定为 True,则相对于形状的原有尺寸来调整高度。若指定为 False,则相对于形状的现有尺寸来调整高度。仅当指定的形状是图片或 OLE 对象时,才能将本参数指定为 True。
FScale
Long 类型,可选。表示调整形状的高度时,该形状哪一部分的位置将保持不变。可为下列MsoScaleFrom 常量之一:
msoScaleFromBottomRight,msoScaleFromMiddle 或msoScaleFromTopLeft。默认值为 msoScaleFromTopLeft。
示例
本示例将 myDocument 中所有的图片和 OLE 对象的高度和宽度调整为原有尺寸的 175%,而将所有其它类型形状的高度和宽度调整为现有尺寸的175%。
Set myDocument = Worksheets(1)
For Each s In myDocument.Shapes
Select Case s.Type
Case msoEmbeddedOLEObject, msoLinkedOLEObject, msoOLEControlObject, _
msoLinkedPicture,msoPicture
s.ScaleHeight 1.75, True
s.ScaleWidth 1.75, True
Case Else
s.ScaleHeight 1.75, False
s.ScaleWidth 1.75, False
End Select
Next
适用于
Axis 对象
描述
返回或者设置数值坐标轴的刻度类型。可为下列 XlScaleType 常量之一:
xlScaleLinear 或 xlScaleLogarithmic。仅应用于数值坐标轴。Long 类型,可读写。
说明
对数刻度使用常用对数,即以 10 为底的对数。
示例
本示例设置“Chart1”的数值坐标轴使用对数刻度。
Charts("Chart1").Axes(xlValue).ScaleType = xlScaleLogarithmic
适用于
Shape 对象,ShapeRange 集合对象
描述
按指定的比例调整形状的宽度。对于图片和 OLE 对象,可以指定是相对于原有大小还是相对于现有大小来调整形状的宽度。对于不是图片和 OLE对象的形状,总是相对于现有大小调整其宽度。
句法
expression.ScaleWidth(Factor, RelativeToOriginalSize, fScale)
expression
必选。该表达式返回 Shape 或 ShapeRange 对象。
Factor
Single 类型,必选。表示形状调整后的宽度与其现有宽度或原有宽度之间的比例。例如,如果要使矩形增大 50%,就应将本参数指定为 1.5。
RelativeToOriginalSize
Long 类型,必选。若指定为 True,则相对于形状的原有尺寸来调整宽度。
若指定为 False,则相对于形状的现有尺寸来调整宽度。仅当指定的形状是图片或 OLE 对象时,才能将本参数指定为 True。
FScale
Long 类型,可选。表示调整形状的宽度时,该形状哪一部分的位置将保持不变。可为下列MsoScaleFrom 常量之一:msoScaleFromBottomRight,msoScaleFromMiddle 或 msoScaleFromTopLeft。默认值为msoScaleFromTopLeft。
示例
本示例将 myDocument 中所有的图片和 OLE 对象的高度和宽度调整为原有尺寸的 175%,而将所有其它类型形状的高度和宽度调整为现有尺寸的175%。
Set myDocument = Worksheets(1)
For Each s In myDocument.Shapes
Select Case s.Type
Case msoEmbeddedOLEObject, msoLinkedOLEObject, msoOLEControlObject, _
msoLinkedPicture, msoPicture
s.ScaleHeight 1.75, True
s.ScaleWidth 1.75, True
Case Else
s.ScaleHeight 1.75, False
s.ScaleWidth 1.75, False
End Select
Next
描述
代表工作表中的方案。方案是一组被命名和保存的输入值(称为可变单元格)。Scenario 对象是 Scenarios 集合的成员。Scenarios 集合包含定义在工作表中的所有方案。
使用Scenario 对象
可用 Scenarios(index) (其中 index 为方案名称或编号)返回单个 Scenario对象。下例显示工作表“Options”中的方案“Typica”。
Worksheets("options").Scenarios("typical").Show
属性
Application 属性,ChangingCells 属性,Comment 属性,Creator 属性,Hidden 属性,Index 属性,Locked 属性,Name 属性,Parent 属性,Values属性
方法
ChangeScenario 方法,Delete 方法,Show 方法
描述
指定工作表中所有 Scenario 对象的集合。方案是一组被命名和保存的输入值(称为可变单元格)。
使用Scenarios 集合
可用 Scenarios 方法返回 Scenarios 集合。下例为工作表“Options”中的方案创建摘要,并用单元格区域“J10:J20”作为结果单元格。
Worksheets("options").Scenarios.CreateSummary _
resultCells:=Worksheets("options").Range("j10,j20")
可用 Add 方法创建新方案并将其添加到集合中。下例向工作表“Options”
添加新方案“Typical”。该方案有两个可变单元格“A2”和“A12”,值分别为 55 和 60。
Worksheets("options").Scenarios.Add name:="Typical", _
changingCells:=Worksheets("options").Range("A2,A12"), _
values:=Array("55", "60")
可用 Scenarios(index) (其中 index 为方案名称或编号)返回单个 Scenario对象。下例显示工作表“Options”中的方案“Typical”。
Worksheets("options").Scenarios("typical").Show
属性
Application 属性,Count 属性,Creator 属性,Parent 属性
方法
Add 方法(Scenarios 集合 ),CreateSummary 方法,Item 方法(Scenarios集合),Merge 方法
适用于
Worksheet 对象
描述
返回一个对象,该对象既可代表工作表的单个方案(一个 Scenario 对象,句法 1),也可代表工作表的一个方案集合(一个 Scenarios 对象,句法 2)。
句法 1
expression.Scenarios(Index)
句法 2
expression.Scenarios
expression
必选。该表达式返回一个 Worksheet 对象。
Index
Variant 类型,可选。方案名称或方案号。使用数组可指定多个方案。
示例
本示例设置 Sheet1 的第一个方案的注释。
Worksheets("Sheet1").Scenarios(1).Comment = _
"Worst-case July 1993 sales "
适用于
ChartColorFormat 对象,ColorFormat 对象
描述
以当前颜色方案索引形式返回或者设置 Color 对象的颜色。Long 类型,
可读写。
示例
本示例为第一张图表设置前景颜色,背景颜色和图表区域填充的过渡。
With Charts(1).ChartArea.Fill.
Visible = True.
ForeColor.SchemeColor = 15
.BackColor.SchemeColor = 17
.TwoColorGradient msoGradientHorizontal,
1End With
适用于
DefaultWebOptions 对象,WebOptions 对象
描述
返回或设置在 Web 浏览器中查看已保存文档时可使用的理想最小屏幕大小(宽度乘高度,单位:像素)可以为下列 MsoScreenSize 常量之一。默认常量是 msoScreenSize800x600。可读写。MsoScreenSize 类型。
msoScreenSize1024x768 msoScreenSize1152x882
msoScreenSize1152x900 msoScreenSize1280x1024
msoScreenSize1600x1200 msoScreenSize1800x1440
msoScreenSize1920x1200 msoScreenSize544x376
msoScreenSize640x480 msoScreenSize720x512
msoScreenSize800x600
示例
本示例将目标屏幕大小设置为 800x600 像素。
Application.DefaultWebOptions.ScreenSize = _
msoScreenSize800x600
适用于
Hyperlink 对象
描述
返回或设置指定超级链接的“屏幕提示”文字。可读写。String 类型。
说明
在将文档保存到 Web 页中之后,如果在 Web 浏览器中查看该文档,则当鼠标移动到超级链接上时,“屏幕提示”文字就会显示。某些浏览器可能不支持“屏幕提示”。
示例
本示例设置活动工作表上第一个超级链接的屏幕提示。
ActiveSheet.Hyperlinks(1).ScreenTip = "Return to the home page"
适用于
Application 对象
描述
如果屏幕更新功能是打开的则为 True。Boolean 类型,可读写。
说明
关闭屏幕更新可加快宏的执行速度。这样将看不到宏的执行过程,但宏的执行速度加快了。
请记住当宏结束执行时,将 ScreenUpdating 属性设回到 True。
另见
DisplayAlerts 属性, Interactive 属性
示例
本示例可演示出将屏幕更新关闭以后,系统可加快代码的执行速度。本示例隐藏 Sheet1 的偶数列并保存其执行时间。第一次,示例隐藏所有的偶数列,屏幕更新是打开的;第二次执行时,屏幕更新是关闭的。运行本示例时,可比较信息框中显示的两次执行时间。
Dim elapsedTime(2)
Application.ScreenUpdating = True
For i = 1 To 2
If i = 2 Then Application.ScreenUpdating = False
startTime = Time
Worksheets("Sheet1").Activate
For Each c In ActiveSheet.Columns
If c.Column Mod 2 = 0 Then
c.Hidden = True
End If
Next c
stopTime = Time
elapsedTime(i) = (stopTime - startTime) * 24 * 60 * 60
Next I
Application.ScreenUpdating = True
MsgBox "Elapsed time,screen updating on: " & elapsedTime(1) & _
" sec." & Chr(13) & _
"Elapsed time ,screen updatin off: " & elapsedTime(2) & _
" sec."
Script 属性
适用于
Shape 对象
描述
返回 Script 对象,该对象代表指定 Web 页上的一段脚本或代码。如果该Web 页中不包含任何脚本,则什么也不返回。只读。
示例
本示例显示活动工作表中第一个形状内使用的脚本语言类型。
Set objScr = ActiveSheet.Shapes(1).Script
If Not (objScr Is Nothing) Then
Select Case objScr.Language
Case msoScriptLanguageVisualBasic
MsgBox "VBScript"
Case msoScriptLanguageJava
MsgBox "JavaScript"
Case msoScriptLanguageASP
MsgBox "Active Server Pages"
Case Else
Msgbox "Other scripting language"
End SelectEnd If
Scripts 属性
适用于
Chart 对象,Worksheet 对象
描述
返回 Scripts 集合,该集合中包含有许多 Script 对象,这些对象则代表了保存为 Web 页的指定文档中的脚本或代码段。只读。
另见
Scripts 集合对象(《Microsoft Office语言参考手册》)
示例
本示例向活动工作表的 Scripts 集合中添加一个新的 VBScript 块。
Set objScrs = ActiveSheet.Scripts
Set objNewScr = objScrs.Add
objNewScr.Language = msoScriptLanguageVisualBasic
适用于
Worksheet 对象
描述
以 A1-样式的区域引用返回或设置允许滚动的区域。用户不能选定滚动区域之外的单元格。String 类型,可读写。
说明
可将本属性设置为空字符串(“”)以允许对整个工作表内所有单元格的选定。
示例
本示例设置第一张工作表的滚动区域。
Worksheets(1).ScrollArea = "a1:f10"
适用于
Pane 对象,Window 对象
描述
返回或者设置指定窗格或窗口最左边的列号。Long 类型,可读写。
说明
如果指定窗口处于拆分状态,Window 对象的 ScrollColumn 属性表示左上方的窗格。如果某些窗格处于冻结状态,则 Window 对象的ScrollColumn 属性将不包括冻结的区域。
另见
示例
本示例将第三列移到窗口的最左侧。
Worksheets("Sheet1").Activate
ActiveWindow.ScrollColumn = 3
适用于
Pane 对象,Window 对象
描述
滚动文档窗口,以使指定矩形区域中的内容显示在文档窗口或窗格的左上角或右下角(取决于参数 Start 的值)。
句法
expression.ScrollIntoView(Left, Top, Width, Height, Start)
expression
一个返回 Pane 或 Window 对象的表达式。
Left
必选。Long 类型。从文档窗口或窗格左边缘开始,矩形的横向位置(单位:点)。
Top
必选。Long 类型。从文档窗口或窗格顶部开始,矩形的纵向位置(点为单位)。
Width
必选。Long 类型。矩形的宽度,单位:点。
Height
必选。Long 类型。矩形的高度,单位:点。
Start
可选。Variant 类型。如果为 True,则将矩形的左上角显示在文档窗口或窗格的左上角。如果为 False,则将该矩形的右下角显示在文档窗口或窗格的右下角。默认值为 True。
说明
当矩形比文档窗口或窗格更大时,Start 参数对调整屏幕显示很有用处。
示例
本示例在活动文档窗口中定义一个 100x200 点的矩形,其位置为距窗口顶部 20 点,距窗口左边缘 50 点。然后将文档向左、向上滚动,以使矩形的左上角与窗口的左上角对齐。
ActiveWindow.ScrollIntoView _
Left:=50, Top:=20, _
Width:=100, Height:=200
适用于
Pane 对象,Window 对象
描述
返回或者设置指定窗格或窗口最上面的行号。Long 类型,可读写。
说明
如果指定窗口处于拆分状态, Window 对象的 ScrollRow 属性代表左上方的窗格。如果某些窗格处于冻结状态,则 Window 对象的 ScrollRow 属性将不包括冻结的区域。
另见
示例
本示例将第十行移到窗口的最上面。
Worksheets("Sheet1").Activate
ActiveWindow.ScrollRow = 10
适用于
Window 对象
描述
滚动工作簿窗口下方的工作表标签。本方法不改变该工作簿中的活动工作表。
句法
expression.ScrollWorkbookTabs(Sheets, Position)
expression
必选。该表达式返回一个 Window 对象。
Sheets
Variant 类型,可选。要滚动的工作表的数目。正数向左滚动,负数向右滚动,为 0(零)则不作滚动。如果不指定 Position 参数则必须指定 Sheets 参数。
Position
Variant 类型,可选。设为 xlFirst 可滚动到第一张工作表,设为 xlLast 可滚动到最后一张工作表。如果不指定 Sheets 参数则必须指定 Position 参数。
示例
本示例滚动工作表标签到工作簿的最后一张工作表。
ActiveWindow.ScrollWorkbookTabs position:=xlLast
适用于
Point 对象
描述
如果点位于复合饼图或复合柱饼图中的次段,本属性为 True。仅适用于于复合饼图或复合柱饼图中的点。Boolean 类型,可读写。
示例
本示例必须在复合饼图或复合柱饼图中运行。本示例将第四点移到图表的次段。
With Worksheets(1).ChartObjects(1).Chart.SeriesCollection(1)
.Points(4).SecondaryPlot = True
End With
适用于
ChartGroup 对象
描述
返回或设置复合饼图或复合柱饼图中次段的尺寸, 以主段尺寸的百分率表示。可为从 5 至200 的值 。Long 类型,可读写。
示例
本示例必须在复合饼图或复合柱饼图中运行。 本示例以数值拆分图表的两段,在主段中合并所有小于 10 的数值,并在次段中显示之。次段的尺寸为主段尺寸的50%。
With Worksheets(1).ChartObjects(1).Chart.ChartGroups(1)
.SplitType = xlSplitByValue
.SplitValue = 10
.VaryByCategories = True
.SecondPlotSize = 50
End With
适用于
ShapeNode 对象
描述
本属性所返回的值表示与指定的节点相联系的线段是直线的还是曲线的。
可为下列 MsoSegmentType 常量之一:msoSegmentCurve 或msoSegmentLine。如果指定的节点是曲线段上的控制点,本属性将返回msoSegmentCurve。Long 类型,只读。
说明
本属性为只读属性。可用 SetSegmentType 方法设置本属性的值。
示例
本示例将 myDocument 中第三个形状的所有直线段都改为曲线段。第三个形状必须是任意多边形。
Set myDocument = Worksheets(1)
With myDocument.Shapes(3).Nodes
n = 1
While n <= .Count
If .Item(n).SegmentType = msoSegmentLine Then
.SetSegmentType n, msoSegmentCurve
End If
n = n + 1
Wend
EndWith
适用于
Chart 对象
描述
选定图表元素时,将产生本事件。
句法
Private Sub object_Select(ByVal ElementID As Long, ByVal Arg1 As Long,
ByVal Arg2 As Long)
Object
Chart 对象,或在类模块中与事件一起定义的 Chart 类型的对象。有关的详细内容,另见嵌入式图表事件的句法。
ElementID, Arg1, Arg2
所选定的图表元素。有关这些参数的详细内容,另见 BeforeDoubleClick 事件。
示例
如果用户选定了图表标题,本示例将显示消息框。
Private Sub Chart_Select(ByVal ElementID As Long, _
ByVal Arg1 As Long, ByVal Arg2 As Long)
If ElementId = xlChartTitle Then
MsgBox "please don't change the chart title"
End If
End Sub
适用于
Axis 对象,AxisTitle 对象,Chart 对象,ChartArea 对象.,ChartObject 对象,ChartObjects 集合对象,Charts 集合对象,ChartTitle 对象,Corners对象,DataLabel 对象,DataLabels 集合对象,DataTable 对象,DisplayUnitLabel 对象,DownBars 对象,DropLines 对象,ErrorBars 对象,Floor 对象,Gridlines 对象,HiLoLines 对象,LeaderLines 对象,Legend 对象,LegendEntry 对象,LegendKey 对象,OLEObject对象,OLEObjects 集合对象,PlotArea 对象,Point 对象,Range 对象,Series 对象,SeriesLines 对象,Shape 对象,shapeRange 集合对象,Sheets 集合对象,TickLabels 对象,Trendline 对象,UpBars 对象,Walls 对象,Worksheet 对象,Worksheets 集合对象
描述
选定对象。
句法
expression.Select(Replace)
expression
必选。该表达式返回一个“应用于”列表中的某个对象。
Replace
Variant 类型,可选(仅用于工作表) 。如果为 True 则用指定对象替代当前选定区域。如果为 False 则对当前选定区域进行延伸,以包括任何以前选定的对象和指定对象。
说明
要选定一个单元格或一个单元格区域,可使用 Select 方法。要将单个单元格激活为活动单元格,可使用 Activate 方法。
另见
示例
本示例选定 Sheet1 中的 A1:B3 单元格。
Worksheets("Sheet1").Activate
Range("A1:B3")
.Select
适用于
Shape 集合对象
描述
选定指定的 Shapes 集合中的所有形状。
句法
expression.SelectAll
expression
必选。该表达式返回 Shapes 对象。
示例
本示例选定 myDocument 中的所有形状,并创建了包含所有这些形状的ShapeRange 对象。
Set myDocument = Worksheets(1)
myDocument.Shapes.SelectAll
Set sr = Selection.ShapeRange
适用于
Window 对象
描述
返回一个 Sheets 集合,此集合代表指定窗口中的所有选定的工作表。 只读。
有关返回一个集合中单个成员的详细内容,另见返回集合中的对象。
示例
本示例当 Book1.xls 中的 Sheet1 被选取时显示一条信息。
For Each sh In Workbooks("BOOK1.XLS").Windows(1).SelectedSheets
If sh.Name = "Sheet1" Then
MsgBox "Sheet1 is selected"
Exit For
End If
Next
适用于
Application 对象,Window 对象
描述
Application 对象:返回当前窗口中的选定对象。
Window 对象:返回指定窗口中的选定对象。
说明
返回对象的类型取决于当前的选定对象(例如,如果选定对象是单元格,本属性返回的将是 Range 对象)。如果没有选定任何对象,Selection 属性将返回 Nothing。在不使用对象识别符的情况下使用本属性等价于使用Application.Selection。
另见
Activate 方法, ActiveCell 属性, Select 方法
示例
本示例清空 Sheet1 的选定对象(假定选定对象为单元格区域)。
Worksheets("Sheet1").Activate
Selection.Clear
本示例显示选定对象的 Visual Basic 对象类型。
Worksheets("Sheet1").Activate
MsgBox "The selection object type is " & TypeName(Selection)
适用于
Worksheet 对象
描述
工作表上的选定区域发生改变时,将产生本事件。
句法
Private Sub Worksheet_SelectionChange(ByVal Target As Excel.Range)
Target
新的选定区域。
示例
本示例滚动工作簿窗口,直至选定区域位于窗口的左上角。
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
With ActiveWindow.
ScrollRow = Target.Row
.ScrollColumn = Target.Column
End with
End Sub
适用于
PivotTable 对象
描述
返回或设置数据透视表的结构化选定方式。可为下列 XlPTSelectionMode常量之一: xlLabelOnly、 xlDataAndLabel 或 xlDataOnly。Long 类型,
可读写。
说明
如果数据透视表字段不是分级显示的,则指定任意常量和以及指定xlFirstRow的将等价于单独指定某个常量。
另见
示例
本示例激活结构化选定方式,并使第一张数据透视表仅允许选定数据。
Application.PivotTableSelection = True
Worksheets(1).PivotTables(1).SelectionMode = xlDataOnly
在该示例中,数据透视表是分级显示的。
Application.PivotTableSelection = True
Worksheets(1).PivotTables(1).SelectionMode = _xlDataOnly+xlFirstRow
适用于
Application 对象
描述
将击键发送给活动应用程序。
句法
expression.SendKeys(Keys, Wait)
expression
可选。该表达式返回一个 Application 对象。
Keys
Variant 类型,必选。要发送的键或者组合键,以文本方式表示。
Wait
Variant 类型,可选。如果为 True 则 Microsoft Excel 等待击键处理完后再将控制返回到宏;如果为 False,或者省略该参数,则宏继续执行而无需等待击键处理完毕。
说明
本方法将击键放到键盘缓冲区。某些情况下,在调用要使用击键的方法之前必须先调用此方法。例如,要往对话框中发送密码,则在显示对话框之前必须调用 SendKeys 方法。
Keys参数可指定任何单个键或与 ALT,CTRL 或 SHIFT 的组合键(或者这些键的组合)。每个键可用一个或多个字符表示。例如,“a”表示字符 a,或者“{ENTER}”表示 ENTER 键。
要指定那些没有屏幕回显该字符的键(例如, ENTER 键或 TAB 键),可使用下表所列的代码来表示相应的键。表中的每一代码表示键盘上的一个键。
| 键 | 代码 |
| BACKSPACE | {BACKSPACE} 或 {BS} |
| BREAK | {BREAK} |
| CAPS LOCK | {CAPSLOCK} |
| CLEAR | {CLEAR} |
| DELETE 或 DEL | {DELETE} 或 {DEL} |
| DOWN ARROW | {DOWN} |
| END{END}ENTER(数字小键盘) | {ENTER} |
| ENTER | ~(波浪线) |
| ESC | {ESCAPE} 或 {ESC} |
| HELP | {HELP} |
| HOME | {HOME} |
| INS | {INSERT} |
| LEFT ARROW | {LEFT} |
| NUM LOCK | {NUMLOCK} |
| PAGE DOWN | {PGDN} |
| PAGE UP | {PGUP} |
| RETURN | {RETURN} |
| RIGHT ARROW | {RIGHT} |
| SCROLL LOCK | {SCROLLLOCK} |
| TAB | {TAB} |
| UP ARROW | {UP} |
| F1 到 F15 | {F1} 到 {F15} |
也可表示与 SHIFT 和/或 CTRL 和/或 ALT 的组合键。要指定与这些键组合的键,可使用下表。
| 要组合的键 | 在键代码之前添加 |
| SHIFT | +(加号) |
| CTRL | ^(乘幂) |
| ALT | %(百分号) |
示例
本示例
使用 SendKeys 方法退出 Microsoft Excel for Windows。
Application.SendKeys("%fx")
适用于
Workbook 对象
描述
使用已安装的邮件系统发送工作簿。
句法
expression.SendMail(Recipients, Subject, ReturnReceipt)
expression
必选。该表达式返回一个 Workbook 对象。
Recipients
Variant 类型,必选。以文本指定收信人的名称,如果有多个收信人则使用文本字符串数组。必须至少指定一个收信人,而且所有收信人名单都添加到“收信人”中。
Subject
可选。Variant 类型,指定消息的主题。如果省略该参数,将使用文档名称。
ReturnReceipt
Variant 类型,可选。如果为 True 则要求返回回执;如果为 False 则不要求返回回执。默认值为 False。
另见
示例
本示例将活动工作簿传送给单个收信人。
ActiveWorkbook.SendMail recipients:="Jean Selva"
适用于
ChartObject 对象,ChartObjects 集合对象,OLEObject 对象,OLEObjects
集合对象
描述
将指定对象放到 Z-顺序的后面。
句法
expression.SendToBack
expression
必选,该表达式返回“应用于”列表中的某个对象。
另见
示例
本示例将 Sheet1 中第一个嵌入式图表放到 Z-顺序的末尾。
Worksheets("Sheet1").ChartObjects(1).SendToBack
描述
代表图表中的系列。Series 对象是 SeriesCollection 集合的成员。
使用Series 对象
可用 SeriesCollection(index) (其中 index 为系列编号或名称)返回单个Series 对象。下例设置工作表“Sheet1”上第一张内嵌图表中第一个系列的内部颜色。
Worksheets("sheet1").ChartObjects(1).Chart. _
SeriesCollection(1).Interior.Color = RGB(255, 0, 0)
系列编号指出系列添加到图表中的顺序。SeriesCollection(1) 为第一个添加到图表中的系列,而 SeriesCollection(SeriesCollection.Count) 为最后一个。
属性
Application 属性,ApplyPictToEnd 属性,ApplyPictToFront 属性,ApplyPictToSides 属性,AxisGroup 属性,BarShape 属性,Border 属性,BubbleSizes 属性,ChartType 属性,Creator 属性,ErrorBars 属性,Explosion 属性,Fill 属性,Formula 属性,FormulaLocal 属性,FormulaR1C1 属性,FormulaR1C1Local 属性,FormulaLocal 属性,Has3DEffect 属性,HasDataLabels 属性,HasErrorBars 属性,HasLeaderLines 属性,Interior 属性,InvertIfNegative属性,LeaderLines属性,MarkerBackgroundColor 属性,MarkerBackgroundColorIndex属性,MarkerForegroundColor 属性,MarkerForegroundColorIndex 属性,MarkerSize 属性,MarkerStyle 属性,Name 属性,Parent 属性,PictureType 属性,PictureUnit 属性,PlotOrder 属性,Shadow 属性,Smooth 属性,Type 属性,Values 属性,XValues 属性
方法
ApplyCustomType 方法,ApplyDataLabels 方法,ClearFormats 方法,Copy方法,DataLabels 方法,Delete 方法,ErrorBar 方法,Paste 方法(Point 或者 Series 对象),Points 方法,Select 方法,Trendlines 方法
适用于
Chart 对象
描述
当用户更改图表数据点的值时产生此事件。
句法
Private Sub object_SeriesChange(ByVal SeriesIndex As Long, ByVal
PointIndex As Long)
Object
在类模块中带有事件声明的 Chart 类型对象。有关详细内容,另见嵌入式图表事件的句法。
SeriesIndex
表示更改系列在 Series 集合中的偏移量。
PointIndex
表示更改数据点在 Points 集合中的偏移量。
示例
本示例当用户更改绘制点的值时对绘制点边框的颜色进行设置。
Private Sub Chart_SeriesChange(ByVal SeriesIndex As Long, _
ByVal PointIndex As Long)
Set p = Me.SeriesCollection(SeriesIndex).Points(PointIndex)
p.Border.ColorIndex = 3
End Sub
描述
指定的图表或图表组中所有 Series 对象的集合。
使用SeriesCollection 集合对象
可用 SeriesCollection 方法返回 SeriesCollection 集合。下例将第一张工作表上单元格区域“C1:C10”中的数据添加到第一张内嵌图表中的系列集合中已存在的系列中。
Worksheets(1).ChartObjects(1).Chart. _
SeriesCollection.Extend Worksheets(1).Range("c1:c10")
可用 Add 方法创建新系列并将其添加到图表中。下例将单元格区域“A1:A19”中的数据作为新系列添加到图表工作表“Chart1”中。
Charts("Chart1").SeriesCollection.Add _
source:=Worksheets("sheet1").Range("a1:a19")
可用 SeriesCollection(index) (其中 index 为系列编号或名称)返回单个Series 对象。下例设置工作表“Sheet1”上第一张内嵌图表中第一个系列的内部颜色。
Worksheets("sheet1").ChartObjects(1).Chart. _
SeriesCollection(1).Interior.Color = RGB(255, 0, 0)
属性Application 属性,Count 属性,Creator 属性,Parent 属性
方法
Add 方法(SeriesCollection 集合),Extend 方法,Item 方法(SeriesCollection
集合),NewSeries方法,Paste 方法(SeriesCollection 集合)
适用于
Chart 对象,ChartGroup 对象
描述
返回一个对象,该对象既可代表单个系列(一个 Series 对象,句法 1),
也可代表图表或图表组中所有系列的集合(一个 SeriesCollection 对象,
句法 2)。
句法 1
expression.SeriesCollection(Index)
句法 2
expression.SeriesCollection
expression
必选,该表达式返回一个 Chart 对象或 ChartGroup 对象。
Index
Variant 类型,可选。系列的名称或号码。
示例
本示例显示“Chart1”中第一个系列的数据标志。
Charts("Chart1").SeriesCollection(1).HasDataLabels = True
描述
代表图表组中的系列线。系列线连接每个系列中的数据。只有二维堆积条形图或柱形图图表组可有系列线。本对象并非集合。没有代表单个系列线的对象;要么打开图表组中所有数据点的系列线,要么将其全部关闭。
使用SeriesLines 对象
可用 SeriesLines 属性返回 SeriesLines 对象。下例向第一张工作表上第一张内嵌图表中的第一个图表组添加系列线(该图表必须是二维堆积条形图或柱形图)。
With Worksheets(1).ChartObjects(1).Chart.ChartGroups(1)
.HasSeriesLines = True
.SeriesLines.Border.Color = RGB(0, 0, 255)
End With
说明
如果 HasSeriesLines 属性为 False,SeriesLines 对象的绝大部分属性将禁用。
属性
Application 属性,Border 属性,Creator 属性,Name 属性,Parent 属性
方法
Delete 方法,Select 方法
适用于
ChartGroup 对象
描述
返回一个 SeriesLines 对象,此对象代表堆积条形图或者堆积柱形图的系列线。仅应用于堆积条形图和堆积柱形图。只读。
另见
示例
本示例显示“Chart1”中图表组一的系列线,并对其线型、粗细、颜色进行设置。
本示例需在有两个或多个系列的二维堆积柱形图上运行。
With Charts("Chart1").ChartGroups(1)
.HasSeriesLines = True
With .SeriesLines.Border
.LineStyle = xlThin
.Weight = xlMedium
.ColorIndex = 3
End With
End With
适用于
PivotField 对象
描述
如果数据透视表的数据源为外部数据源并且只检索到与选定页字段相匹配的数据项则为 True。Boolean 类型,可读写。
如果本属性设为 True,则指定数据库中只有与选定页字段项相匹配的记录可被检索到。那么,以后每当用户更改页字段选择,新的选定字段项将作为参数传递给指定查询,并对高速缓存进行刷新。
如果下列某个条件成立则不能对本属性进行设置:
示例
本示例列示出所有基于服务器程序的页字段。
For Each fld in ActiveSheet.PivotTables(1).PageFields
If fld.ServerBased = True Then
r = r + 1
Worksheets(2).Cells(r, 1).Value = fld.Name
End If
Next
适用于
Chart 对象,Worksheet 对象
描述
为指定工作表或者图表设置背景图形。
句法
expression.SetBackgroundPicture(FileName)
expression
必选。该表达式返回一个 Worksheet 对象或 Chart 对象。
FileName
String 类型,必选。图形文件名。
示例
本示例为工作表一设置背景图形。
Worksheets(1).SetBackgroundPicture "c:\graphics\watrmark.bmp"
适用于
Application 对象
描述
指定 Microsoft Excel 新建图表时使用的图表模板的名称。
句法
expression.SetDefaultChart(FormatName)
expression
必选,该表达式返回一个 Application 对象。
FormatName
Variant 类型,可选。指定一个自定义自动套用格式的名称。该名称可以是用于指定自定义自动套用格式名称的字符串,或为特定常量 xlBuiltIn,以指定内置图表模板。
示例
本示例将默认图表模板设为自定义自动套用格式,并命名为“月度销售”。
Application.SetDefaultChart FormatName:="月度销售"
适用于
ShapeNodes 集合对象
描述
设置由 Index 所指定的节点的编辑类型。如果该节点是曲线段上的控制点,本方法将设置与之相邻的连接两个线段的节点的编辑类型。请注意,依据不同的编辑类型,本方法将按不同的方式影响相邻节点的位置。
句法
expression.SetEditingType(Index, EditingType)
expression
必选。该表达式返回 ShapeNodes 对象。
Index
Long 类型,必选。要设置编辑类型的节点。
EditingType
Long 类型,必选。顶点的编辑属性。可为下列 MsoEditingType 常量之一:
msoEditingAuto,msoEditingCorner,msoEditingSmooth或msoEditingSymmetric。
示例
本示例将 myDocument 中第三个形状的所有尖角节点改为光滑节点。第三个形状必须是任意多边形。
Set myDocument = Worksheets(1)
With myDocument.Shapes
(3).Nodes For n = 1 to .Count
If .Item(n).EditingType = msoEditingCorner Then
.SetEditingType n, msoEditingSmooth
End If
Next
End With
适用于
ThreeDFormat 对象
描述
设置延伸形状的延伸方向。
句法
expression.SetExtrusionDirection(PresetExtrusionDirection)
expression
必选。该表达式返回 ThreeDFormat 对象。
PresetExtrusionDirection
Long 类型,必选。指定延伸方向。可为下列 MsoPresetExtrusionDirection常量之一:
msoExtrusionBottom,msoExtrusionBottomLeft,msoExtrusionBottomRight, msoExtrusionLeft, msoExtrusionNone,msoExtrusionRight, msoExtrusionTop, msoExtrusionTopLeft 或msoExtrusionTopRight。
说明
本方法将 PresetExtrusionDirection 属性设置为 PresetExtrusionDirection
参数所指定的方向。
示例
本示例使 myDocument 中的第一个形状向上延伸,并使光线从左方照射。
Set myDocument = Worksheets(1)
With myDocument.Shapes(1).ThreeD
.Visible = True
.SetExtrusionDirection msoExtrusionTop
.PresetLightingDirection = msoLightingLeft
End With
适用于
Workbook 对象
描述
设置每当更新 DDE 链接时运行的过程名。
句法
expression.SetLinkOnData(Name, Procedure)
expression
必选。该表达式返回一个 Workbook 对象。
Name
String 类型,可选。DDE/OLE 链接的名称,作为 LinkSources 方法返回的字符串。
Procedure
String 类型,可选。当更新链接时运行的过程名称。可为一个 Microsoft Excel4.0 宏或一个 Visual Basic 过程。将该参数设为空字符串(“”)表示更新链接时不运行任何过程。
示例
本示例对每当更新 DDE 链接时运行的过程名进行设置。
ActiveWorkbook.SetLinkOnData "WinWord|'C:\MSGFILE.DOC'!DDE_LINK1",
_"my_Link_Update_Macro"
适用于
Parameter 对象
描述
为指定查询表定义参数。
句法
expression.SetParam(Type, Value)
expression
必选。该表达式返回一个 Parameter 对象。
Type
Long 类型,必选。参数类型。可为下列 XlParameterType 常量之一。
| 常量 | 描述 |
| xlConstant | 使用 Value 参数指定的值。 |
| XlPrompt | 显示对话框提示用户输入值。Value 参数指定的是对话框中显示的文字。 |
| XlRange | 使用区域左上角单元格的值。Value 参数指定的是一个 Range 对象。 |
| Value | Variant 类型,必选。指定参数的值。如 Type 参数的描述所示。 |
另见
示例
本示例对第一张查询表的 SQL 语句进行更改。“(city=?)”子句表示这是一
个带参数查询,然后本示例将 city 的值设为常量“Oakland”。
Set qt = Sheets("Sheet1").QueryTables(1)
qt.Sql = "SELECT * FROM authors WHERE (city=?)
"Set param1 = qt.Parameters.Add("City Parameter", xlParamTypeVarChar)
param1.SetParam xlConstant, "Oakland"
qt.Refresh
本示例将 city 的值设为第二张工作表中 A2 单元格的值。
Set qt = Sheets("Sheet1").QueryTables(1)
qt.Sql = "SELECT * FROM authors WHERE (city=?)"
Set param1 = qt.Parameters.Add("City Parameter", xlParamTypeVarChar)
param1.SetParam xlRange, Range("Sheet2!a1")
qt.Refresh
适用于
Range 对象
描述
为指定范围内所有单元格产生Phonetic 对象。
句法
expression.SetPhonetic
expression
必选。该表达式返回一个 Range 对象。
说明
用此方法加入新对象时,任何在指定范围中已存在的Phonetic 对象都将被覆盖。
示例
此例为活动工作簿A1:A10的单元格产生一个Phonetic 对象。
ActiveSheet.Range("A1:A10").SetPhonetic
适用于
ShapeNodes 集合对象
描述
设置由 Index 所指定的节点的位置。请注意,依据该节点的不同编辑类型,本方法将按不同的方式影响相邻节点的位置。
句法
expression.SetPosition(Index, X1, Y1)
expression
必选。该表达式返回 ShapeNodes 对象。
Index
Long 类型,必选。要设置位置的节点。
X1, Y1
Single 类型,必选。相对于文档的左上角,以磅为单位给出节点的新位置。
示例
本示例将 myDocument 上第三个形状的第二个节点移到原位置的下方 300磅和右边 200 磅的位置上。第三个形状必须是任意多边形。
Set myDocument = Worksheets(1)
With myDocument.Shapes(3).
Nodes pointsArray = .Item(2)
.Points currXvalue = pointsArray(0, 0)
currYvalue = pointsArray(0, 1)
.SetPosition 2, currXvalue + 200, currYvalue + 300
End With
适用于
ShapeNodes 集合对象
描述
设置由 Index 所指定的节点之后的线段的类型。如果该节点是曲线段上的控制点,本方法将设置该曲线的线段类型。请注意,这样可能会由于插入或删除相邻的节点而改变节点的总数。
句法
expression.SetSegmentType(Index, SegmentType)
expression
必选。该表达式返回 ShapeNodes 对象。
Index
Long 类型,必选。要设置线段类型的节点。
SegmentType
Long 类型,必选。表示线段是直线的还是曲线的。可为下列MsoSegmentType 常量之一:msoSegmentCurve 或 msoSegmentLine。
示例
本示例将 myDocument 中第三个形状的所有直线段都改为曲线段。第三个形状必须是任意多边形。
Set myDocument = Worksheets(1)
With myDocument.Shapes(3).Nodes
n = 1
While n <= .Count
If .Item(n).SegmentType = msoSegmentLine Then
.SetSegmentType n, msoSegmentCurve
End If
n = n + 1
Wend
End With
适用于
Shape 对象,ShapeRange 集合对象
描述
将指定形状的格式应用于默认形状。调用了本方法以后所创建的形状将默认地应用这些格式。
句法
expression.SetShapesDefaultProperties
expression
必选。该表达式返回 Shape 或 ShapeRange 对象。
示例
本示例向 myDocument 中添加矩形,设置该矩形的填充格式,对默认形状应用矩形的格式,然后又向文档添加了一个较小的矩形。第二个矩形的填充格式将与第一个矩形的一样。
Set myDocument = Worksheets(1)
With mydocument.Shapes
With .AddShape(msoShapeRectangle, 5, 5, 80, 60)
With .Fill
.ForeColor.RGB = RGB(0, 0, 255)
.BackColor.RGB = RGB(0, 204, 255)
.Patterned msoPatternHorizontalBrick
End With
.SetShapesDefaultProperties
' Sets formatting for default shapes
End With
.AddShape msoShapeRectangle, 90, 90, 40, 30
' New shape has default formatting
End With
适用于
Chart对象
描述
设置图表的源数据列。
句法
expression.SetSourceData(Source, PlotBy)
expression
必需。返回Chart对象的表达式。
Source
Range类型,必需。该列包含源数据。
PoltBy
Variant类型,可选。指定划分数据的方法。可以是下列XlRowCol常量之一:xlColumns或xlRows。
示例
本示例为图表1设置源数据列。
Chart(1).SetSourceDataSource:=Sheets(1).Range("al:a10"),_
PlotBy:=xlColumns
适用于
ThreeDFormat 对象
描述
设置预置的延伸格式。每个预置的延伸格式包含延伸形状的各种属性的预置值。
句法
expression.SetThreeDFormat(PresetThreeDFormat)
expression
必选。该表达式返回 ThreeDFormat 对象。
PresetThreeDFormat
Long 类型,必选。指定预置的延伸格式,该格式相应于单击“绘图”工具栏上的“三维效果”工具时所出现的选项(按从左至右和从上至下的顺序
编号)。可为下列 MsoPresetThreeDFormat 常量之一:msoThreeD1,
msoThreeD10, msoThreeD11, msoThreeD12, msoThreeD13, msoThreeD14,
msoThreeD15, msoThreeD16, msoThreeD17, msoThreeD18, msoThreeD19,
msoThreeD2, msoThreeD20, msoThreeD3, msoThreeD4, msoThreeD5,
msoThreeD6, msoThreeD7, msoThreeD8 或 msoThreeD9。请注意,将本参数指定为 msoPresetThreeDFormatMixed 将导致错误。
说明
本方法将 PresetThreeDFormat 属性设置为 PresetThreeDFormat 参数所指定的格式。
示例
本示例向 myDocument 中添加椭圆,并将该椭圆设置为第十二个三维样式。
Set myDocument = Worksheets(1)
With myDocument.Shapes.AddShape(msoShapeOval, 30, 30, 50, 25).ThreeD
.Visible = True
.SetThreeDFormat msoThreeD12
End With
适用于
AxisTitle 对象,ChartArea 属性,ChartObject 对象,ChartObject 集合对象,ChartTitle 对象,DataLabel 对象,DataLabels 集合对象,DisplayUnitLabel 对象,Font 对象,Legend 对象,LegendKey 对象,OLEObject 对象,OLEObject 集合对象,Point 对象,Series 对象,Shape对象,ShapeRange 集合对象
描述
如果字体为带阴影字体或者指定对象有阴影则为 True。Boolean 类型,可读写。
说明
对于 Font 对象,该属性在 Microsoft Windows 中不起作用,但保留其值(可设置或者返回)。
示例
本示例为“myChart”的标题添加阴影。
Charts("Chart1").ChartTitle.Shadow = True
描述
代表形状的阴影格式。
使用ShadowFormat 对象
可用 Shadow 属性返回 ShadowFormat 对象。下例向 myDocument 添加带阴影的矩形。该矩形的阴影是半透明的兰色阴影,投影方向是右上方,右边的阴影为 5 磅宽,上方的阴影为 3 磅高。
Set myDocument = Worksheets(1)
With myDocument.Shapes.AddShape(msoShapeRectangle, 50, 50, 100, 200).Shadow
.ForeColor.RGB = RGB(0, 0, 128)
.OffsetX = 5
.OffsetY = -3
.Transparency = 0.5
.Visible = True
End With
属性
Application 属性,Creator 属性,ForeColor 属性,Obscured 属性,OffsetX属性,OffsetY 属性,Parent 属性,Transparency 属性,Type 属性,Visible
属性
方法
IncrementOffsetX 方法,IncrementOffsetY 方法
描述
代表图形层中的对象,如自选图形、任意多边形、OLE 对象或图片。Shape对象是 Shapes 集合的成员。Shapes 集合包含文档中的所有形状。
注释:有三种代表形状的对象:Shapes 集合,该集合代表文档中的所有形状;ShapeRange 集合,该集合代表文档中的形状的指定子集(例如,ShapeRange 对象可能代表文档中的第一个和第四个形状,或者代表文档中所有选定的形状);Shape 对象,该对象代表文档中的单个形状。如果同时处理若干形状,或处理选定的形状,可用 ShapeRange 集合。有关如何处理单个形状或同时处理若干形状的概述,另见处理形状(图形对象)。
使用Shape 对象
本部分说明了下述内容:
可用 Shapes(index) (其中 index 为形状的名称或编号)返回代表某一形状的 Shape 对象。下例将 myDocument 中第一个形状和名为“Rectangle 1”的形状作了水平翻转。
Set myDocument = Worksheets(1)
myDocument.Shapes(1).Flip msoFlipHorizontal
myDocument.Shapes("Rectangle 1").Flip msoFlipHorizontal
向 Shapes 集合添加新的形状时,将对该新添加的形状赋以默认的名称。
如果要为形状指定更有意义的名称,可使用 Name 属性。下例向myDocument 添加矩形,将其命名为“Red Square”,并设置了该矩形的前景颜色和线型。
Set myDocument = Worksheets(1)
With myDocument.Shapes.AddShape(msoShapeRectangle, 144, 144, 72, 72)
.Name = "Red Square"
.Fill.ForeColor.RGB = RGB(255, 0, 0)
.Line.DashStyle = msoLineDashDot
End With
返回选定的形状
可用 Selection.ShapeRange(index) (其中 index 为形状的名称或编号)返回代表某一选定的形状的 Shape 对象。下例设置了活动窗口内选定形状中的第一个形状的填充格式。下例假定至少选定了一个形状。
ActiveWindow.Selection.ShapeRange(1).Fill.ForeColor.RGB = RGB(255, 0, 0)
返回连接符端点上的形状
如果要返回代表连接在连接符的某一端点上的形状的 Shape 对象,可用BeginConnectedShape 属性或 EndConnectedShape 属性。
返回新建的任意多边形
可用 BuildFreeform 方法和 AddNodes 方法定义新建的任意多边形的几何形状,而用 ConvertToShape 方法创建任意多边形,并返回代表该新建的任意多边形的 Shape 对象。
返回分组中的单个形状
可用 GroupItems(index) (其中 index 为形状的名称或在分组中的编号)返回代表成组的形状中的单个形状的 Shape 对象。
返回新建的形状组可用 Group 方法或 Regroup 方法组合若干形状,并返回代表新构造的形状组的单个 Shape 对象。构造了形状组之后,可像处理其它单个形状那样处理该形状组。
属性
Adjustments 属性,AlternativeText 属性,Application 属性,AutoShapeType 属性,BlackWhiteMode 属性,BottomRightCell 属性,Callout 属性,ConnectionSiteCount 属性,Connector 属性,ConnectorFormat 属性,ControlFormat 属性,Creator 属性,Fill 属性,FormControlType 属性,GroupItems 属性,Height 属性,HorizontalFlip 属性,Hyperlink 属性,Left 属性,Line 属性,LinkFormat 属性,LockAspectRatio 属性,Locked 属性,Name 属性,Nodes 属性,OLEFormat 属性,OnAction 属性,Parent 属性,PictureFormat 属性,Placement 属性,Rotation 属性,Script 属性,Shadow 属性,TextEffect 属性,TextFrame 属性,ThreeD 属性,TopLeftCell 属性,Type 属性,VerticalFlip 属性,Vertices 属性,Visible 属性,Width 属性,ZOrderPosition 属性
方法
Apply 方法,Copy 方法,CopyPicture 方法,Cut 方法,Delete 方法,Duplicate 方法,Flip 方法,IncrementLeft 方法,IncrementRotation 方法,IncrementTop 方法,PickUp 方法,RerouteConnections 方法,ScaleHeight 方法,ScaleWidth 方法,Select 方法,SetShapesDefaultProperties 方法,Ungroup 方法(Shape 或者 ShapeRange对象),ZOrder 方法
适用于
Comment 对象,Hyperlink 对象
描述
返回 Shape 对象,该对象代表附加在指定的批注或超级链接上的形状。
示例
本示例选定活动工作表上的第二条批注。
ActiveSheet.Comments(2).Shape.Select
描述
代表用户定义的任意多边形中节点的几何属性和几何编辑属性。节点包括任意多边形各线段之间的顶点和曲线段上的控制点。ShapeNode 对象是ShapeNodes 集合的成员。ShapeNodes 集合包含任意多边形的所有节点。
使用ShapeNode 对象
可用 Nodes(index) (其中 index 为节点编号)返回单个 ShapeNode 对象。
如果 myDocument 上第三个形状的第一个节点位于尖角上,下例将使该尖角变得光滑。为使本示例正常运行,第三个形状必须是任意多边形。
Set myDocument = Worksheets(1)
With myDocument.Shapes(3)
If .Nodes(1).EditingType = msoEditingCorner Then
.Nodes.SetEditingType 1, msoEditingSmooth
End If
End With
属性
Application 属性,Creator 属性,EditingType 属性,Parent 属性,Points属性,SegmentType属性
描述
指定的任意多边形上的所有 ShapeNode 对象的集合。ShapeNode 对象代表任意多边形各线段之间的顶点或曲线段上的控制点。可手工创建任意多边形,或用 BuildFreeform 方法和 ConvertToShape 方法。
使用ShapeNodes 集合
可用 Nodes 属性返回 ShapeNodes 集合。下例删除 myDocument 中第三个形状上的第四个节点。为使本示例正常运行,第三个形状必须是至少有四个节点的任意多边形。
Set myDocument = Worksheets(1)
myDocument.Shapes(3).Nodes.Delete 4
可用 Insert 方法创建新的节点并将其添加到 ShapeNodes 集合中。下例在myDocument 中第三个形状上的第四个节点之后添加了一个光滑节点。为使本示例正常运行,第三个形状必须是至少有四个节点的任意多边形。
Set myDocument = Worksheets(1)
With myDocument.Shapes(3).Nodes
.Insert 4, msoSegmentCurve, msoEditingSmooth, 210, 100
End With
可用 Nodes(index) (其中 index 为节点编号)返回单个 ShapeNode 对象。
如果 myDocument 上第三个形状的第一个节点位于尖角上,下例将使该尖角变得光滑。为使本示例正常运行,第三个形状必须是任意多边形。
Set myDocument = Worksheets(1)
With myDocument.Shapes(3)
If .Nodes(1).EditingType = msoEditingCorner Then
.Nodes.SetEditingType 1, msoEditingSmooth
End If
End With
属性Application 属性,Count 属性,Creator 属性,Parent 属性
方法
Delete 方法,Insert 方法,Item 方法(ShapeNodes 集合),SetEditingType 方法,SetPosition方法,SetSegmentType 方法
代表若干形状,这些形状构成文档中所有形状的一个子集。形状子集所包含的形状数,最少可以是一个形状,最多可以是文档中的所有形状。可以在形状子集中包含所需的任意形状(在文档中的所有形状中选取,或在所有选定的形状中选取)。例如,可以构造包含文档中前三个形状的ShapeRange 集合,或包含文档中所有选定形状的 ShapeRange 集合,或包含文档中所有任意多边形的 ShapeRange 集合。
有关如何处理单个形状或同时处理若干形状的概述,另见处理形状(图形对象)。
使用ShapeRange 集合
本部分说明了下述内容:
用名称或编号返回指定的一组形状可用 Shapes.Range(index) 返回代表文档中的一组形状的 ShapeRange 集合,其中 index 为形状的名称或编号,或者由形状的名称或编号组成的数组。可用 Array 函数构造名称或编号的数组。下例设置 myDocument 上的第一个和第三个形状的填充图案。
Set myDocument = Worksheets(1)
myDocument.Shapes.Range(Array(1, 3)).Fill.Patterned msoPatternHorizontalBrick
下例设置 myDocument 上的形状“Oval 4”和“Rectangle 5”的填充图案。
Set myDocument = Worksheets(1)
Set myRange = myDocument.Shapes.Range(Array("Oval 4", "Rectangle 5"))
myRange.Fill.Patterned msoPatternHorizontalBrick
虽然可以用 Range 属性返回任意数目的形状和幻灯片,但如果要仅返回单个形状的话,用 Item 方法更为简单。例如,用 Shapes(1) 比用Shapes.Range(1) 更简单。
返回文档中全部或部分选定的形状
可用 Selection 对象的 ShapeRange 属性返回所有选定的形状。下例设置了第一个窗口中所有选定形状的填充格式的前景颜色。下例假定至少选定了一个形状。
Windows(1).Selection.ShapeRange.Fill.ForeColor.RGB = RGB(255, 0, 255)
可用 Selection.ShapeRange(index) (其中 index 为形状的名称或编号)返回某一选定的形状。下例设置了第一个窗口内选定形状的集合中第二个形状的填充格式的前景颜色。下例假定至少选定了两个形状。
Windows(1).Selection.ShapeRange(2).Fill.ForeColor.RGB = RGB(255, 0, 255)
属性
Adjustments 属性,AlternativeText 属性,Application 属性,AutoShapeType 属性,BlackWhiteMode 属性,Callout 属性,ConnectionSiteCount 属性, Connector 属性,ConnectorFormat 属性,Count 属性,Creator 属性,Fill 属性,GroupItems 属性,Height 属性,HorizontalFlip 属性,Left 属性,Line 属性,LockAspectRatio 属性,Name属性,Nodes属性,Parent 属性,PictureFormat 属性,Rotation 属性,Shadow 属性,TextEffect 属性,TextFrame 属性,ThreeD 属性,Top 属性,Type 属性,VerticalFlip 属性,Vertices 属性,Visible 属性,Width 属性,ZOrderPosition 属性
方法
Align 方法,Apply 方法,Delete 方法,Distribute 方法,Duplicate 方法,Flip 方法,Group 方法(ShapeRange 对象),IncrementLeft 方法,IncrementRotation 方法,IncrementTop 方法,Item 方法(ShapeRange 集合),PickUp 方法,Regroup 方法,RerouteConnections 方法,ScaleHeight方法,ScaleWidth 方法,Select 方法,SetShapesDefaultProperties 方法,Ungroup 方法(Shape 或者 ShapeRange 对象),ZOrder 方法
适用于
ChartObject 对象,ChartObjects 集合对象,OLEObject 对象,OLEObjects
集合对象
描述
返回一个 ShapeRange 对象,该对象代表指定形状区域或指定的多个形状区域。只读。
示例
本示例创建一个形状区域,该区域代表第一个工作表中所有嵌入式图表。
Set sr = Worksheets(1).ChartObjects.ShapeRange
描述
指定工作表上的所有 Shape 对象的集合。Shape 对象代表图形层上的对象,如自选图形、任意多边形、OLE 对象或图片。
注意:如果要处理文档中所有形状的一个子集(例如,只对文档中的自选图形对象,或只对选定的形状执行一些操作),就必须一个构造包含要处理的形状的 ShapeRange 集合。有关如何处理单个形状或同时处理若干形状的概述,另见处理形状(图形对象)。
使用Shapes 集合
可用 Shapes 属性返回 Shapes 集合。下例选定 myDocument 上的所有形状。
Set myDocument = Worksheets(1)
myDocument.Shapes.SelectAll
注意:如果要对工作表上的所有形状同时执行某项操作(如删除或对其设置属性),请先选定所有的形状,然后用选定对象的 ShapeRange 属性创建 ShapeRange 对象,该对象就包含工作表上的所有形状,然后再对该 ShapeRange 对象应用适当的属性或方法。
可用 Shapes(index) (其中 index 为形状的名称或编号)返回单个 Shape 对象。下例将 myDocument 中第一个形状的填充格式设置为预置的渐进色。
Set myDocument = Worksheets(1)
myDocument.Shapes(1).Fill.PresetGradient msoGradientHorizontal, 1, msoGradientBrass可用 Shapes.Range(index) 返回代表 Shapes 集合的子集的 ShapeRange集合,其中 index 为形状的名称或编号,或者由形状的名称或编号组成的数组。下例设置 myDocument 上的第一个和第三个形状的填充图案。
Set myDocument = Worksheets(1)
myDocument.Shapes.Range(Array(1, 3)).Fill.Patterned msoPatternHorizontalBrick
说明
在表单中,每个ActiveX控件有两个名称:包含有控件的形状名,当观察表单时,在Name箱中可见;控件的代码名,在Properties窗中Name箱右侧的单元格中可见。最初为表单添加控件时,形状名和代码名相互匹配。但如果改变其一,另外一个也会自动改变以匹配。
在控制事件过程中应使用代码名。若要为一个表单从Shapes或者OLEObjects 集合返回一个控件,则必须用形状名,以便引用控件。例如,为一个表单添加一个形状名和代码名均为CheckBox1的检查箱,如果改变控件的代码名为chkFinished,则必须在事件过程名中应用chkFinished,但是仍必须从Shapes或者OLEObject 集合 中用CheckBox1以返回控件,
如下例所示。
Private Sub chkFinished_Click()
ActiveSheet.OLEObjects("CheckBox1").Object.Value = 1
End Sub
属性
Application 属性,Count 属性,Creator 属性,Parent 属性,Range 属性(Shapes 集合)
方法
AddCallout 方法,AddConnector 方法,AddCurve 方法,AddFormControl方法,AddLabel 方法,AddLine 方法,AddOLEObject 方法,AddPicture方法,AddPolyline 方法,AddShape 方法,AddTextbox 方法,AddTextEffect方法,BuildFreeform 方法,Item 方法(Shapes 集合),SelectAll 方法
适用于
Chart 对象,Worksheet 对象
描述
返回 Shapes 对象,该对象代表工作表或图表上的所有形状。只读。
有关返回集合中的单个成员的详细内容,另见返回集合中的对象。
示例
本示例向第一张工作表添加兰色的虚线。
With Worksheets(1).Shapes.AddLine(10, 10, 250, 250).Line
.DashStyle = msoLineDashDotDot
.ForeColor.RGB = RGB(50, 0, 128)
End With
适用于
PulishObject 对象
描述
返回指定 PublishObject 对象的工作表名称。只读。String 类型。
示例
本示例用于确定包含第一个 PublishObject 对象的工作表的名称,而该PublishObject 对象是以 Web 页中的静态 HTML 格式保存的。然后,本示例将 Boolean 类型变量 blnSheetFound 设置为 True。如果该文档中没有任何以静态 HTML 格式保存的项,则 blnSheetFound 为 False。
blnSheetFound = False
For Each objPO In Workbooks(1).PublishObjects
If objPO.HtmlType = xlHTMLStatic Then
strFirstPO = objPO.Sheet
blnSheetFound = True
Exit For
End If
Next objPO
适用于
Application 对象,Workbook 对象
描述
当激活任何一张表时产生此事件。
句法
Private Sub object_SheetActivate(ByVal Sh As Object)
Object
Application 对象或 Workbook对象。
Sh
激活的表。可为一个 Chart 对象或 Worksheet 对象。
另见
Activate 事件, Deactivate 事件, SheetDeactivate 事件, WindowActivate 事件, WindowDeactivate 事件, WorkbookActivate 事件, WorkbookDeactivate 事件
示例
本示例显示每一激活表的名称。
Private Sub Workbook_SheetActivate(ByVal Sh As Object)
MsgBox Sh.Name
End Sub
适用于
Application 对象,Workbook 对象
描述
当双击任何工作表时产生此事件,此事件先于默认的双击操作发生。
句法
Private Sub object_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, ByVal Cancel As Boolean)
Object
Application 对象或 Workbook 对象。
Sh
代表该工作表的 Worksheet 对象。
Target
当双击事件发生时最靠近鼠标指针的单元格。
Cancel
当事件产生时为 False。如果该事件过程将本参数设为 True,则该过程执行结束之后不执行默认的双击操作。
说明
双击图表不产生本事件。
另见
BeforeDoubleClick 事件, BeforeRightClick 事件, SheetBeforeRightClick 事件
示例
本示例对 SheetBeforeDoubleClick 事件响应进行设置,关闭默认的双击操作。
Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, ByVal Cancel As Boolean)
Cancel = True
End Sub
适用于
Application 对象,Workbook 对象
描述
当右击任一工作表时产生此事件,此事件先于默认的右击操作。
句法
Private Sub object_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, ByVal Cancel As Boolean)
Object
Application 对象或 Workbook 对象。
Sh
代表该工作表的 Worksheet 对象。
Target
当右击事件发生时最靠近鼠标指针的单元格。
Cancel
当事件产生时为 False。如果该事件过程将本参数设为 True,则该过程执行结束之后将不执行默认的右击操作。
说明
右击图表不产生本事件。
另见
BeforeDoubleClick 事件, BeforeRightClick 事件, SheetBeforeDoubleClick
事件
示例
本示例对 SheetBeforeRightClick 事件响应进行设置,关闭默认的右击操作。其他示例可参阅 BeforeRightClick 事件示例
。Private Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object, _
ByVal Target As Range, ByVal Cancel As Boolean)
Cancel = True
End Sub
适用于
Application 对象,Workbook 对象
描述
当对工作表进行重新计算或者在图表上重绘发生更改的数据点时产生此事件。
句法
Private Sub object_SheetCalculate(ByVal Sh As Object)
Object
Application 对象或 Workbook 对象。
Sh
表。可为一个 Chart 对象或 Worksheet 对象。
另见
示例
当计算工作簿中的任何工作表时,本示例对第一张工作表的 A1:A100 区域进行排序。
Private Sub Workbook_SheetCalculate(ByVal Sh As Object)
With Worksheets(1)
.Range("a1:a100").Sort Key1:=.Range("a1")
End With
End Sub
适用于
Application 对象,Workbook 对象
描述
当用户更改工作表中的单元格或者外部链接引起单元格的更改时产生此事件。
句法
Private Sub object_SheetChange(ByVal Sh As Object, ByVal Source As Range)
objectApplication 对象或 Workbook 对象。
Sh
代表工作表的 Worksheet 对象。
Source
发生更改的区域。
说明
图表发生的更改不触发本事件。
另见
示例
本示例当任一工作表发生更改时运行本示例。
Private Sub Workbook_SheetChange(ByVal Sh As Object, _ByVal Source As Range)'
runs when a sheet is changed
End Sub
适用于
当任一工作表由活动状态转为非活动状态时产生此事件。
句法
Private Sub object_SheetDeactivate(ByVal Sh As Object)
Object
Application 对象或 Workbook 对象。
Sh
工作表。可为一个 Chart 对象或 Worksheet 对象。
另见
Activate 事件, Deactivate 事件, SheetActivate 事件, WindowActivate 事件, WindowDeactivate 事件, WorkbookActivate 事件, WorkbookDeactivate 事件
示例
本示例显示每一非活动工作表的名称。
Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
MsgBox Sh.Name
End Sub
适用于
Application 对象,Workbook 对象
描述
单击 Microsoft Excel 中的任意超级链接时发生此事件。对于工作表级的事件,另见“帮助”主题中的 FollowHyperlink 事件。
句法
Private Sub Application_SheetFollowHyperlink(ByVal Sh As Object, ByVal Target As Hyperlink)
Sh
必选。Object 类型。表示包含该超级链接的 Worksheet 对象。
Target
必选。Hyperlink 类型。表示一个 Hyperlink 对象,用以代表超级链接的目标位置。
另见
示例
本示例保留当前被点击的工作簿上所有超级链接的列表或历史(history),
加上包含这些超级链接的工作表名称。
描述
指定工作簿或活动工作簿中所有工作表的集合。Sheets 集合可包含 Chart对象或 Worksheet 对象。
如果希望返回所有类型的工作表, Sheets 集合就非常有用。如果仅需使用某一类型的工作表,另见该工作表类型的对象主题。
使用Sheets 集合对象
可用 Sheets 属性返回 Sheets 集合。下例打印活动工作簿上的所有工作表。
Sheets.PrintOut
可用 Add 方法创建新工作表并将其添加到集合中。下例向活动工作簿添加了两个图表工作表,并将其置于工作簿中第二个工作表之后。
Sheets.Add type:=xlChart, count:=2, after:=Sheets(2)
可用 Sheets(index) (其中 index 为工作表名称或编号)返回单个 Chart 对象或 Worksheet 对象。下例激活工作表“sheet1”。
Sheets("sheet1").Activate
可用 Sheets(array) 指定多个工作表。下例将工作表“Sheet4”和“Sheet5”移到工作簿的前部。
Sheets(Array("Sheet4", "Sheet5")).Move before:=Sheets(1)
属性
Application 属性,Count 属性,Creator 属性,HPageBreaks 属性,Item 属性(Sheets 集合),Parent 属性,Visible 属性,VPageBreaks 属性
方法
Add 方法(Sheet 集合),Copy 方法,Delete 方法,FillAcrossSheets 方法,
Move 方法,PrintOut 方法,PringPreview 方法,Select 方法
适用于
Application 对象,Workbook 对象
描述
Application 对象: 返回一个 Sheets 集合,此集合代表当前工作簿的所有工作表。只读。
Workbook 对象: 返回一个 Sheets 集合,此集合代表指定工作簿的所有工作表。 只读。
有关返回一个集合中单个成员的详细内容, 另见返回集合中的对象。
说明
在不用对象识别符的情况下使用此属性等价于使用ActiveWorkbook.Sheets。
另见
示例
本示例新建一个工作表,然后将当前工作簿所有工作表的名称填入第一列中。
Set newSheet = Sheets.Add(Type:=xlWorksheet)
For i = 1 To Sheets.Count
newSheet.Cells(i, 1).Value = Sheets(i).Name
Next I
适用于
Application 对象,Workbook 对象
描述
任一工作表上的选定区域发生改变时,将产生本事件(但图表上的选定对象发生改变时,不会产生本事件)。
句法
Private Sub object_SheetSelectionChange(ByVal Sh As Object, ByVal Target
As Excel.Range)
Object
Application 对象或 Workbook 对象。
Sh
新的选定区域所在的工作表。
Target
新的选定区域。
示例
本示例在状态栏上显示选定区域所在的工作表名称及选定区域的地址。
Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, _
ByVal Target As Excel.Range)
Application.StatusBar = Sh.Name & ":" & Target.Address
End Sub
适用于
Application 对象
描述
返回或者设置 Microsoft Excel 自动插入到新工作簿的工作表数目。Long 类
型,可读写。
示例
本示例显示自动插入到新工作簿的工作表数目。
MsgBox "Microsoft Excel inserts " & _
Application.SheetsInNewWorkbook & _
" sheet(s) in each new workbook"
适用于
Name 对象
描述
返回或设置自定义 Microsoft Excel 4.0 宏命令的名称的快捷键。String 类型,可读写。
示例
本示例设置活动工作簿中第一个名称的快捷键。本示例应在第一个名称引用 Microsoft Excel 4.0 宏命令的工作簿上运行。
ActiveWorkbook.Names(1).ShortcutKey = "K"
适用于
CustomView 对象,Dialog 对象,Range 对象,Scenario 对象
描述
CustomView 对象(句法 1):显示自定义视图。
Range 对象(句法 1):对活动窗口中的内容进行滚动,将指定区域移到视图中。该区域必须包含活动文档中的单个单元格。
Scenario 对象(句法 1):将值插入到工作表,显示该方案,受到影响的单元格为方案中的可变单元格。
Dialog 对象(句法 2):显示内置对话框,并等待用户的输入。
句法 1
expression.Show
句法 2
object.Show(arg1, arg2, ..., arg30)
expression
必选。对于句法 1, 该表达式返回“应用于”列表中的某个对象。
arg1, arg2, ..., arg30
Variant 类型,可选。仅应用于内置对话框,作为命令的初始参数。有关详细内容,另见“说明”部分。
说明
对于内置对话框,如果用户单击“确定”则本方法返回的是 True,否则如果用户单击“取消”则返回 False。
使用单个对话框可同时更改多个属性。例如,使用“单元格格式(FormatCell)”对话框可更改 Font 对象的所有属性。
对于某些内置对话框(例如,“打开”对话框),可使用 arg1, arg2, ..., arg30
设置初始值。有关内置对话框的详细内容,另见 Dialogs 集合。
示例
本示例显示“打开”对话框。
Application.Dialogs(xlDialogOpen).Show
适用于
Worksheet 对象
描述
使当前筛选列表的所有行均可见。如果正在使用自动筛选,本方法将下拉列表框内容改为“全部”。
句法
expression.ShowAllData
expression
必选。该表达式返回一个 Worksheet 对象。
另见
AdvancedFilter 方法, AutoFilter 方法, FilterMode 属性
示例
本示例使工作表“Sheet1”上所有的数据可见。本示例应在包含用“自动筛选”命令所筛选出的列表的工作表上运行。
Worksheets("Sheet1").ShowAllData
适用于
PivotField 对象
描述
如果数据透视表中所有的项目都显示(即便这些项目中并无汇总数据),本属性为 True。默认值为 False。Boolean 类型,可读写。
说明
对于OLAP数据源,此值为False。
示例
本示例使数据透视表显示“Month”字段的所有行,包括没有数据的月份。
Worksheets(1).PivotTables("Pivot1") _
.PivotFields("Month").ShowAllItems = True
适用于
Application 对象
描述
如果图表显示图表提示名,本属性为 True。默认值为 True。Boolean 类型,可读写。
示例
本示例关闭图表提示名和值。
With Application
.ShowChartTipNames = False
.ShowChartTipValue = False
End With
适用于
Application 对象
描述
如果图表显示图表提示值,本属性为 True。默认值为 True。Boolean 类型,可读写。
示例
本示例关闭图表提示名和值。
With Application
.ShowChartTipNames = False
.ShowChartTipValue = False
End With
适用于
Workbook 对象
描述
如果以共享清单模式打开的工作簿中显示冲突日志工作表则为 True。
Boolean 类型,可读写。
说明
如果指定工作簿不是以共享清单方式打开的,则该属性无效。要判断工作簿是否以共享清单模式打开,可对其 MultiUserEditing 属性进行检查。
另见
MultiUserEditing 属性, SaveAs 方法, ShowConflictHistory 属性
示例
本示例检查活动工作簿是否以共享清单模式打开,如果是则本示例显示冲突日志工作表。
If ActiveWorkbook.MultiUserEditing Then
ActiveWorkbook.ShowConflictHistory = True
End If
适用于
Worksheet 对象
描述
显示与指定工作表相关联的数据表单。
句法
expression.ShowDataForm
expression
必选。该表达式返回一个 Worksheet 对象。
说明
使用数据表单时宏的运行会暂停。关闭数据表单后,宏将从 ShowDataForm方法的下一语句开始继续执行。
如果存在自定义数据表单,此方法将运行此表单。
示例
本示例显示 Sheet1 的数据表单。
Worksheets(1).ShowDataForm
适用于
Range 对象
描述
绘制从指定区域指向直接从属单元格的追踪箭头。
句法
expression.ShowDependents(Remove)
expression
必选。该表达式返回 Range 对象。必须为单个单元格。
Remove
Variant 类型,可选。若指定为 True,就去掉一个级别的追踪箭头。若指定为 False,则扩展一个级别的追踪箭头。默认值为 False。
另见
ClearArrows 方法, Dependents 属性, ShowErrors 方法, ShowPrecedents 方法
示例
本示例绘制工作表“Sheet1”中从活动单元格指向其从属单元格的追踪箭头。Worksheets("Sheet1").Activate
ActiveCell.ShowDependents
本示例去掉工作表“Sheet1”中活动单元格的一个级别的追踪箭头。
Worksheets("Sheet1").Activate
ActiveCell.ShowDependents Remove:=True
适用于
PivotItem 对象,Range 对象
描述
如果扩展了指定区域的分级显示(从而行或列的细节可见),本属性为True。指定区域必须为分级显示中的单个摘要列或摘要行。Variant 类型,可读写。
对于 PivotItem 对象(或 Range 对象,如果该区域在数据透视表中),当数据透视表数据项显示细节时,本属性为 True。
说明
下列说明应用于指定区域不在数据透视表中的情况:
如果指定区域为数据透视表,当该区域连续时,就可以一次对多个单元格设置本属性。仅当指定区域为单个单元格时,才能返回本属性的值。
另见
ApplyOutlinesStyles 方法, AutoOutline 方法, ClearOutline 方法, DisplayOutline 属性, Outline 对象, OutlineLevel 属性, Ungroup 方法(Range 对象)
示例
本示例显示工作表“Sheet1”上分级显示的摘要行的细节。运行本示例之前,应先创建包含单个摘要行的简单分级显示,然后折叠该分级显示,使之仅显示摘要行。选定摘要行中的某一单元格,再运行本示例。
Worksheets("Sheet1").Activate
Set myRange = ActiveCell.CurrentRegion
lastRow = myRange.Rows.Count
myRange.Rows(lastRow).ShowDetail = True
适用于
Validation 对象
描述
如果用户输入无效数据时显示数据有效性检查错误消息,本属性为 True。Boolean 类型,可读写。
示例
本示例向第一张工作表上的单元格“A10”添加数据有效性检查。输入的值必须处于 5 到 10 之间;如果用户输入了无效数据,将显示错误消息,但不显示输入消息。
With Worksheets(1).Range("A10").Validation
.Add Type:=xlValidateWholeNumber, AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:="5", Formula2:="10"
.ErrorMessage = "value must be between 5 and 10"
.ShowInput = False
.ShowError = True
End With
适用于
Range 对象
描述
绘制通过从属单元格树而指向错误源单元格的追踪箭头,并返回包含该单元格的区域。
句法
expression.ShowErrors
expression
必选。该表达式返回 Range 对象。
另见
ClearArrows 方法, ShowDependents 方法, ShowPrecedents 方法
示例
如果工作表“Sheet1”上的活动单元格中有错误,本示例将显示红色追踪箭头。
Worksheets("Sheet1").Activate
If IsError(ActiveCell.Value) Then
ActiveCell.ShowErrors
End If
适用于
Validation 对象
描述
如果用户在数据有效性检查区域内选定了某一单元格时,显示数据有效性检查输入消息,本属性为 True。Boolean 类型,可读写。
示例
本示例向单元格“A10”添加数据有效性检查。输入的值必须处于 5 到 10 之间;如果用户输入了无效数据,将显示错误消息,但不显示输入消息。
With Worksheets(1).Range("A10").Validation
.Add Type:=xlValidateWholeNumber, AlertStyle:=xlValidAlertStop, _
Operator:=xlBetween, Formula1:="5", Formula2:="10"
.ErrorMessage = "value must be between 5 and 10"
.ShowInput = False
.ShowError = True
End With
适用于
DataLabel 对象,DataLabels 集合对象,DataTable 对象
描述
如果数据标记的图例标示可见则为 True。Boolean 类型,可读写。
示例
本示例设置“Chart1”第一个系列的数据标志,并显示数值和图例标示。
With Charts("Chart1").SeriesCollection(1).DataLabels
.ShowLegendKey = True
.Type = xlShowValue
End With
适用于
Outline 对象
描述
显示指定行号和/或列号在分级显示中的层次。
句法
expression.ShowLevels(RowLevels, ColumnLevels)
expression
必选。该表达式返回一个 Outline 对象。
RowLevels
Variant 类型,可选。指定分级显示中的行层次。如果该分级显示包含的层次数少于指定层次,则 Microsoft Excel 显示所有的层次。如果该参数设为 0(零)或者省略该参数,则不对行采取任何操作。
ColumnLevels
Variant 类型,可选。指定分级显示中的列层次。如果该分级显示包含的层次数少于指定层次,则 Microsoft Excel 显示所有的层次。如果该参数设为 0(零)或者省略该参数,则不对列采取任何操作。
说明
必须至少指定一个参数。
示例
本示例对 Sheet1 的第一行到第三行和第一列进行分级显示。
Worksheets("Sheet1").Outline.ShowLevels rowLevels:=3, columnLevels:=1
适用于
ChartGroup 对象
描述
如果在图表组中显示表示负值的气泡,本属性为 True。仅对气泡图有效。
Boolean
类型,可读写。
示例
本示例使第一个图表组的表示负值的气泡可见。
Worksheets(1).ChartObjects(1).Chart _
.ChartGroups(1).ShowNegativeBubbles = True
适用于
PivotTable 对象
描述
为页字段中的每个数据项创建新的数据透视表。每个新数据透视表都创建在新的工作表上。
句法
expression.ShowPages(PageField)
expression
必选。该表达式返回 PivotTable 对象。
PageField
Variant 类型,可选。指定数据透视表中单个页字段的名称的字符串。
说明
此方法对OLAP数据源无效。
示例
本示例为页字段中的每个数据项创建新的数据透视表,该页字段名为“Country”。
Set pvtTable = Worksheets("Sheet1").Range("A3").PivotTable
pvtTable.ShowPages "Country"
适用于
Range 对象
描述
绘制从指定区域指向直接引用单元格的追踪箭头。
句法
expression.ShowPrecedents(Remove)
expression
必选。该表达式返回 Range 对象。必须为单个单元格。
Remove
Variant 类型,可选。若指定为 True,就去掉一个级别的追踪箭头。若指定为 False,则扩展一个级别的追踪箭头。默认值为 False。
另见
ClearArrows 方法, Precedents 属性, ShowDependents 方法, ShowErrors 方法
示例
本示例绘制工作表“Sheet1”中从活动单元格指向其引用单元格的追踪箭头。
Worksheets("Sheet1").Activate
ActiveCell.ShowPrecedents
本示例去掉工作表“Sheet1”中活动单元格的一个级别的追踪箭头。
Worksheets("Sheet1").ActivateActive
Cell.ShowPrecedents remove:=True
适用于
Application 对象
描述
如果打开工具提示,本属性为 True。Boolean 类型,可读写。
示例
本示例使 Microsoft Excel 显示工具提示。
Application.ShowToolTips = True
适用于
Chart 对象
描述
如果嵌入的图表显示在分立的窗口中,本属性为 True。本属性所应用的Chart 对象必须指向嵌入图表。Boolean 类型,可读写。
示例
本示例使嵌入的图表显示在分立的窗口中。
Worksheets(1).ChartObjects(1).Chart.ShowWindow = True
适用于
Application 对象
描述
如果每个开放工作簿有一个分离的窗口任务栏按钮,为True。默认值为True。可读写。Boolean类型。
说明
值为True时,此属性模拟单文件界面(SDI)的外观,这使在工作簿中的定位变的容易。但是,在其它应用程序开放时处理多个工作簿,可以设置此属性为False,以免任务栏被不必要的按钮填充。
本属性仅当在Windows 98,或者Windows 2000下运行Microsoft Office时有效。
示例
本例指定每个开放的工作簿都没有分离的窗口任务栏。
Application.ShowWindowsInTaskbar = False
适用于
Range 对象,Style 对象
描述
如果文本自动收缩为适当尺寸以适应有效列宽,本属性为 True。如果指定区域内的所有单元格中本属性的取值不完全相等,将返回 Null。Variant 类型,可读写。
示例
本示例使行中的文本自动收缩为适当尺寸以适应有效列宽。
Rows(1).ShrinkToFit = True
适用于
Font 对象
描述
返回或者设置字体的大小。Variant 类型,可读写。
示例
本示例将 Sheet1 的 A1:D10 单元格的字体大小设为 12 磅。
With Worksheets("Sheet1").Range("A1:D10")
.Value = "Test"
.Font.Size = 12
End With
适用于
ChartGroup 对象
描述
返回或设置气泡图中气泡的大小所表示的含义。可为下列 XlSizeRepresents常量之一: xlSizeIsArea 或 xlSizeIsWidth。Long 类型,可读写。
示例
本示例设置第一个图表组中气泡的大小所表示的含义。
Charts(1).ChartGroups(1).SizeRepresents = xlSizeIsWidth
适用于
Chart 对象
描述
如果 Microsoft Excel 自动调整图表大小以匹配图表工作表窗口的尺寸,本属性为 True。如果图表尺寸不依赖于窗口尺寸,本属性为 False。仅适用于于图表工作表(不能应用于内嵌图表)。Boolean类型,可读写。
另见
示例
本示例使图表“Chart1”的尺寸随其窗口尺寸的改变而改变。
Charts("Chart1").SizeWithWindow = True
适用于
ControlFormat 对象
描述
返回或者设置滚动一行(当用户单击箭头时)时,滚动条和微调控制项的增量或减量的大小。Long 类型,可读写。
另见
示例
本示例创建一个滚动条,并对其链接单元格、最小值、最大值、大步长值和小步长值进行设置。
Set sb = Worksheets(1).Shapes.AddFormControl(xlScrollBar, _
Left:=10, Top:=10, Width:=10, Height:=200)
With sb.ControlFormat
.LinkedCell = "D1"
.Max = 100
.Min = 0
.LargeChange = 10
.SmallChange = 2
End With
适用于
PivotTable 对象
描述
如果 Microsoft Excel 为新建的数据透视表报表使用一个具有两个单元格宽度和两个单元格高度的网格,则其值为 True。如果 Excel 使用一个空模板轮廓,则其值为 False。可读写。Boolean 类型。
说明
应该使用模板轮廓。仅仅是为了与早期版本的 Excel 兼容才使用网格的。
示例
本示例在活动工作表的 A3 单元格上新建一个基于 OLAP 提供者的数据透视表高速缓存,然后基于该高速缓存新建一个数据透视表报表。本示例使用模板轮廓而不使用单元格网格。
With ActiveWorkbook.PivotCaches.Add(SourceType:=xlExternal)
.Connection = _
"OLEDB;Provider=MSOLAP;Location=srvdata;Initial Catalog=National"
.MaintainConnection = True
.CreatePivotTable TableDestination:=Range("A3"), _
TableName:= "PivotTable1"
End With
With ActiveSheet.PivotTables("PivotTable1")
.SmallGrid = False
.PivotCache.RefreshPeriod = 0
With .CubeFields("[state]")
.Orientation = xlColumnField
.Position = 0
End With
With .CubeFields("[Measures].[Count Of au_id]")
.Orientation = xlDataField
.Position = 0
End withEnd with
适用于
Pane 对象,Window 对象
描述
按行或列滚动窗口内容。
句法
expression.SmallScroll(Down, Up, ToRight, ToLeft)
expression
必选。该表达式返回一个 Window 对象。
Down
Variant 类型,可选。窗口内容向下滚动的行数。
Up
Variant 类型,可选。窗口内容向上滚动的列数。
ToRight
Variant 类型,可选。窗口内容向右滚动的列数。
ToLeft
Variant 类型,可选。窗口内容向左滚动的列数。
说明
如果同时指定了 Down 和 Up,窗口内容滚动的行数由这两个参数的差值决定。例如,如果 Down 为 3,Up 为 6,则窗口内容向上滚动三行。
如果同时指定了 ToLeft 和 ToRight,窗口内容滚动的列数由这两个参数的差值决定。例如,如果 ToLeft 为 3,ToRight 为 6,则窗口内容向右滚动三列。
以上四个参数均可取负值。
另见
示例
本示例将 Sheet1 的活动窗口内容向下滚动三行。
Worksheets("Sheet1").Activate
ActiveWindow.SmallScroll down:=3
适用于
LegendKey 对象,Series 对象
描述
如果折线图或散点图有平滑线,本属性为 True。仅适用于于折线图和散点图。可读写。
示例
本示例使图表“Chart1”中的第一个系列具有平滑线。本示例应在二维折线图上运行。
Charts("Chart1").SeriesCollection(1).Smooth = True
适用于
ChartFillFormat 对象,FillFormat 对象
描述
将指定的填充格式设置为均一的颜色。可用本方法将带有渐进色、纹理、图案或背景的填充格式转换为单色的填充格式。
句法
expression.Solid
expression
必选。该表达式返回 FillFormat 对象。
示例
本示例将 myDocument 中的所有填充格式都转换为均一的红色填充格式。
Set myDocument = Worksheets(1)
For Each s In myDocument.Shapes
With s.Fill
.Solid
.ForeColor.RGB = RGB(255, 0, 0)
End With
Next
描述
向当前问题添加约束条件。相当于单击“工具”菜单中的“规划求解”命令,然后在“规划求解参数”对话框中单击“添加”按钮。
使用本函数之前,必须建立对规划求解加载宏的引用。当 Visual Basic 编辑器处于活动状态时,单击“工具”菜单中的“引用”命令,然后选中“可使用的引用”列表框中的“Solver.xla”复选框。如果“Solver.xla”未出现在“可使用的引用”列表框中,请单击“浏览”按钮并打开“\Excel\Library\Solver”文件夹中的“Solver.xla”。
句法
SolverAdd(CellRef, Relation, FormulaText)
CellRef
Variant 类型,必选。对单元格或单元格区域的引用,该引用构成约束条件的左边部分。
Relation
Integer 类型,必选。约束条件左边和右边之间的算术关系。如果选择 4 或5,那么 CellRef 必须引用可调整(可变)单元格,且不能指定 FormulaText参数。
| Relation | 算术关系 |
| 1 | <= |
| 2 | = |
| 3 | >= |
| 4 | CellRef 所引用单元格的值必须为整数。 |
| 5 | CellRef 所引用单元格的值必须为 0(零)或 1。 |
FormulaText
Variant 类型,可选。约束条件的右边部分。
说明
添加约束条件后,可用 SolverChange 和 SolverDelete 函数对其进行操作。
另见
SolverChange 函数, SolverDelete 函数, SolverOk 函数
示例
本示例在商业问题中使用规划求解函数,以使总利润达到最大值。SolverAdd函数用于向当前问题添加三个约束条件。
Worksheets("Sheet1").Activate
SolverReset
SolverOptions precision:=0.001
SolverOK setCell:=Range("TotalProfit"), _
maxMinVal:=1, _
byChange:=Range("C4:E6")
SolverAdd cellRef:=Range("F4:F6"), _
relation:=1, _
formulaText:=100
SolverAdd cellRef:=Range("C4:E6"), _
relation:=3, _
formulaText:=0
SolverAdd cellRef:=Range("C4:E6"), _
relation:=4
SolverSolve userFinish:=False
SolverSave saveArea:=Range("A33")
描述
修改现存的约束条件。相当于单击“工具”菜单中的“规划求解”命令,然后在“规划求解参数”对话框中单击“更改”按钮。
使用本函数之前,必须建立对规划求解加载宏的引用。当 Visual Basic 模块处于活动状态时,单击“工具”菜单中的“引用”命令,然后选中“可使用的引用”列表框中的“Solver.xla”复选框。如果“Solver.xla”未出现在“可使用的引用”列表框中,请单击“浏览”按钮并打开“\Excel\Library\Solver”文件夹中的“Solver.xla”。
句法
SolverChange(CellRef, Relation, FormulaText)
CellRef
Variant 类型,必选。对单元格或单元格区域的引用,该引用构成约束条件的左边部分。
Relation
Integer 类型,必选。约束条件左边和右边之间的算术关系。如果选择 4 或5,那么 CellRef 必须引用可调整(可变)单元格,且不能指定 FormulaText参数。
| Relation | 算术关系 |
| 1 | <= |
| 2 | = |
| 3 | >= |
| 4 | CellRef 所引用单元格的值必须为整数。 |
| 5 | CellRef 所引用单元格的值必须为 0(零)或 1。 |
FormulaText
Variant 类型,可选。约束条件的右边部分。
说明
如果 CellRef 和 Relation 与现存的约束条件不匹配,就必须使用SolverDelete 和 SolverAdd 函数修改该约束条件。
另见
示例
本示例加载先前计算过的规划求解模型(该模型存储于工作表“Sheet1”中),修改其中的一个约束条件,然后再次求解该模型。
Worksheets("Sheet1").Activate
SolverLoad loadArea:=Range("A33:A38")
SolverChange cellRef:=Range("F4:F6"), _
relation:=1, _
formulaText:=200
SolverSolve userFinish:=False
描述
删除现存的约束条件。相当于单击“工具”菜单中的“规划求解”命令,
然后在“规划求解参数”对话框中单击“删除”按钮。
使用本函数之前,必须建立对规划求解加载宏的引用。当 Visual Basic 模块处于活动状态时,单击“工具”菜单中的“引用”命令,然后选中“可使用的引用”列表框中的“Solver.xla”复选框。如果“Solver.xla”未出现在“可使用的引用”列表框中,请单击“浏览”按钮并打开“ \Excel\Library\Solver”文件夹中的“Solver.xla”。
句法
SolverDelete(CellRef, Relation, FormulaText)
CellRef
Variant 类型,必选。对单元格或单元格区域的引用,该引用构成约束条件的左边部分。
Relation
Integer 类型,必选。约束条件左边和右边之间的算术关系。如果选择 4 或5,那么 CellRef 必须引用可调整(可变)单元格,且不能指定 FormulaText参数。
| Relation | 算术关系 |
| 1 | <= |
| 2 | = |
| 3 | >= |
| 4 | CellRef 所引用单元格的值必须为整数。 |
| 5 | CellRef 所引用单元格的值必须为 0(零)或 1。 |
FormulaText
Variant 类型,可选。约束条件的右边部分。
另见
示例
本示例加载先前计算过的规划求解模型(该模型存储于工作表“Sheet1”中),
删除其中的一个约束条件,然后再次求解该模型。
Worksheets("Sheet1").Activate
SolverLoad loadArea:=Range("A33:A38")
SolverDelete cellRef:=Range("C4:E6"), _
relation:=4
SolverSolve userFinish:=False
描述
指示 Microsoft Excel 当求解过程完成后,如何处理结果及创建何种报告。
使用本函数之前,必须建立对规划求解加载宏的引用。当 Visual Basic 编辑器处于活动状态时,单击“工具”菜单中的“引用”命令,然后选中“可使用的引用”列表框中的“Solver.xla”复选框。如果“Solver.xla”未出现在“可使用的引用”列表框中,请单击“浏览”按钮并打开“ \Library\Solver”
文件夹中的“Solver.xla”。
句法
SolverFinish(KeepFinal, ReportArray)
KeepFinal
Variant 类型,可选。可为 1 或 2。如果 KeepFinal 为 1 或省略本参数,最终解的值将保留于可变单元格中,取代其原有值。如果 KeepFinal 为 2,就丢弃最终解的值而恢复单元格原有值。
ReportArray
Variant 类型,可选。求解完成后 Microsoft Excel 将创建的报告的类型: 1表示创建答案报告, 2 表示创建灵敏度报告,而 3 表示创建极限报告。可用 Array 函数指定要显示的报告,例如, ReportArray:= Array(1,3) 。
另见
SolverFinishDialog 函数, SolverOk 函数
示例
本示例加载先前计算过的规划求解模型(该模型存储于工作表“Sheet1”中),
再次求解该模型,然后预设两个选项并显示“完成”对话框。
Worksheets("Sheet1").Activate
SolverLoad loadArea:=Range("A33:A38")
SolverSolve userFinish:=True
SolverFinishDialog keepFinal:=1, reportArray:=Array(1)
描述
指示 Microsoft Excel 当求解过程完成后,如何处理结果及创建何种报告。
等同于 SolverFinish 函数,但在解决问题后,本函数还要显示“规划求解结果”对话框。
使用本函数之前,必须建立对规划求解加载宏的引用。当 Visual Basic 模块处于活动状态时,单击“工具”菜单中的“引用”命令,然后选中“可使用的引用”列表框中的“Solver.xla”复选框。如果“Solver.xla”未出现在“可使用的引用”列表框中,请单击“浏览”按钮并打开“ \Library\Solver”文件夹中的“Solver.xla”。
句法
SolverFinishDialog(KeepFinal, ReportArray)
KeepFinal
Variant 类型,可选。可为 1 或 2。如果 KeepFinal 为 1 或省略本参数,最终解的值将保留于可变单元格中,取代其原有值。如果 KeepFinal 为 2,就丢弃最终解的值而恢复单元格原有值。
ReportArray
Variant 类型,可选。求解完成后 Microsoft Excel 将创建的报告的类型: 1表示创建答案报告, 2 表示创建灵敏度报告,而 3 表示创建极限报告。可用 Array 函数指定要显示的报告,例如, ReportArray:= Array(1,3) 。
另见
示例
本示例加载先前计算过的规划求解模型(该模型存储于工作表“Sheet1”中),
再次求解该模型,然后预设两个选项并显示“完成”对话框。
Worksheets("Sheet1").Activate
SolverLoad loadArea:=Range("A33:A38")
SolverSolve userFinish:=True
SolverFinishDialog keepFinal:=1, reportArray:=Array(1)
描述
返回规划求解当前设定的信息。这些设定是在“规划求解参数”和“规划求解选项”对话框中设置的。
使用本函数之前,必须建立对规划求解加载宏的引用。当 Visual Basic 模块处于活动状态时,单击“工具”菜单中的“引用”命令,然后选中“可使用的引用”列表框中的“Solver.xla”复选框。如果“Solver.xla”未出现在“可使用的引用”列表框中,请单击“浏览”按钮并打开“ \Excel\Library\Solver”文件夹中的“Solver.xla”。
句法
SolverGet(TypeNum, SheetName)
TypeNum
Integer 类型,必选。指定所要获取的信息的整数。下列设定是在“规划求解参数”对话框中指定的。
| TypeNum | 返回 |
| 1 | 返回“设置目标单元格”编辑框中的单元格引用,或者当规划求解未在活动工作表上使用时,返回 #N/A 错误值。 |
| 2 | 相应于“等于”选项的数字: 1 代表“最大值”, 2 代表“最小值”, |
| 而 3 代表“值为:”。 | |
| 3 | “值为”编辑框中的值。 |
| 4 | “可变单元格”编辑框中的单元格引用(必要时为多块引用)。 |
| 5 | 约束条件的个数。 |
| 6 | 由约束条件左边部分构成的文字数组。 |
| 7 | 由表示约束条件左边和右边部分算术关系的数字构成的数组: 1 表示 <= , 2 表示 = , 3 表示 >= , 4 表示值为整数,而 5 表示值为 0 或 1。 |
| 8 | 由约束条件右边部分构成的文字数组。 |
下列设定是在“规划求解选项”对话框中指定的。
| TypeNum | 返回 |
| 9 | 最长运算时间。 |
| 10 | 最大迭代次数。 |
| 11 | 精度。 |
| 12 | 允许误差。 |
| 13 | 如果选中了“采用线性模型”复选框,则返回 True;如果清除了该复选框,则返回 False。 |
| 14 | 如果选中了“显示迭代结果”复选框,则返回 True;如果清除了该复选框,则返回 False。 |
| 15 | 如果选中了“自动按比例缩放”复选框,则返回 True;如果清除了该复选框,则返回 False。 |
| 16 | 表示估值类型的数字: 1 表示正切函数,而 2 表示二次方程。 |
| 17 | 表示导数/偏导式类型的数字: 1 表示向前差分,而 2 表示中心差分。 |
| 18 | 表示搜索类型的数字: 1 表示牛顿法,而 2 表示共轭法。 |
| 19 | 收敛值 |
| 20 | 如果选中了“假定非负”复选框,则返回 True。 |
SheetName
Variant 类型,可选。包含指定的规划求解模型的工作表的名称。如果省略SheetName,则假定该工作表为活动工作表。
另见
示例
如果未在工作表“Sheet1”中使用规划求解,本示例将显示消息框。
Worksheets("Sheet1").Activate
state = SolverGet(typeNum:=1)
If IsError(state) Then
MsgBox "You have not used Solver on the active sheet"
End If
描述
加载现有的已保持于工作表中的规划求解模型参数。
使用本函数之前,必须建立对规划求解加载宏的引用。当 Visual Basic 模块处于活动状态时,单击“工具”菜单中的“引用”命令,然后选中“可使用的引用”列表框中的“Solver.xla”复选框。如果“Solver.xla”未出现在“可使用的引用”列表框中,请单击“浏览”按钮并打开
“ \Excel\Library\Solver”文件夹中的“Solver.xla”。
句法
SolverLoad(LoadArea)
LoadArea
Variant 类型,必选。指定单元格区域的引用,该区域中包含要加载模型的完整问题说明。LoadArea 中的第一个单元格包含“规划求解参数”对话框内“设置目标单元格”编辑框中的公式;第二个单元格包含“可变单元格”编辑框中的公式;后续单元格中包含以逻辑公式的形式给出的约束条件。
最后一个单元格包含规划求解选项值的数组。详细内容另见SolverOptions。由 LoadArea 参数表示的区域可位于任意工作表上,但如果该工作表不是活动工作表,就必须明确地指定。例如,SolverLoad("Sheet2!A1:A3") 将从工作表“Sheet2”中加载模型,即使该工作表不是活动工作表。
另见
示例
本示例加载先前计算过的规划求解模型(该模型存储于工作表“Sheet1”中),
修改其中的一个约束条件,然后再次求解该模型。
Worksheets("Sheet1").Activate
SolverLoad loadArea:=Range("A33:A38")
SolverChange cellRef:=Range("F4:F6"), _
relation:=1, _
formulaText:=200
SolverSolve userFinish:=False
描述
定义基本的规划求解模型。相当于单击“工具”菜单中的“规划求解”命令,然后在“规划求解参数”对话框中设置选项。
使用本函数之前,必须建立对规划求解加载宏的引用。当 Visual Basic 模块处于活动状态时,单击“工具”菜单中的“引用”命令,然后选中“可使用的引用”列表框中的“Solver.xla”复选框。如果“Solver.xla”未出现在“可使用的引用”列表框中,请单击“浏览”按钮并打开
“ \Excel\Library\Solver”文件夹中的“Solver.xla”。
句法
SolverOk(SetCell, MaxMinVal, ValueOf, ByChange)
SetCell
Variant 类型,可选。指定活动工作表上的单个单元格。相当于“规划求解参数”对话框内的“设置目标单元格”编辑框。
MaxMinVal
Variant 类型,可选。相当于“规划求解参数”对话框内的“最大值”、“最小值”和“值为”选项。
| MaxMinVal | 指定 |
| 1 | 最大。 |
| 2 | 最小。 |
| 3 | 匹配特定值。 |
ValueOf
Variant 类型,可选。如果 MaxMinVal 为 3,必须用本参数指定目标单元格应匹配的值。
ByChange
Variant 类型,可选。指定单元格或单元格区域,该单元格或区域内的值将改变,直至在目标单元格中获得期望的结果。相当于“规划求解参数”对话框内的“可变单元格”编辑框。
另见
示例
本示例在商业问题中使用规划求解函数,以使总利润达到最大值。SolverOK函数通过指定 SetCell,MaxMinVal 和 ByChange 参数而定义该问题。
Worksheets("Sheet1").Activate
SolverReset
SolverOptions precision:=0.001
SolverOK setCell:=Range("TotalProfit"), _
maxMinVal:=1, _
byChange:=Range("C4:E6")
SolverAdd cellRef:=Range("F4:F6"), _
relation:=1, _
formulaText:=100
SolverAdd cellRef:=Range("C4:E6"), _
relation:=3, _
formulaText:=0
SolverAdd cellRef:=Range("C4:E6"), _
relation:=4
SolverSolve userFinish:=False
SolverSave saveArea:=Range("A33")
描述
等同于 SolverOK 函数,但本函数还要显示Solover对话框。
使用本函数之前,必须建立对规划求解加载宏的引用。当 Visual Basic 模块处于活动状态时,单击“工具”菜单中的“引用”命令,然后选中“可使用的引用”列表框中的“Solver.xla”复选框。如果“Solver.xla”未出现在“可使用的引用”列表框中,请单击“浏览”按钮并打开
“ \Excel\Library\Solver”文件夹中的“Solver.xla”。
句法
SolverOkDialog(SetCell, MaxMinVal, ValueOf, ByChange)
SetCell
Variant 类型,可选。指定活动工作表上的单个单元格。相当于“规划求解参数”对话框内的“设置目标单元格”编辑框。
MaxMinVal
Variant 类型,可选。相当于“规划求解参数”对话框内的“最大值”、“最小值”和“值为”选项。
| MaxMinVal | 指定 |
| 1 | 最大。 |
| 2 | 最小。 |
| 3 | 匹配特定值。 |
ValueOf
Variant 类型,可选。如果 MaxMinVal 为 3,必须用本参数指定目标单元
格应匹配的值。
ByChange
Variant 类型,必选。指定单元格或单元格区域,该单元格或区域内的值将改变,直至在目标单元格中获得期望的结果。相当于“规划求解参数”对话框内的“可变单元格”编辑框。
另见
示例
本示例加载先前计算过的规划求解模型(该模型存储于工作表“Sheet1”中),
重置所有规划求解选项,然后显示“规划求解参数”对话框。此后就可以手工进行规划求解。
Worksheets("Sheet1").Activate
SolverLoad loadArea:=Range("A33:A38")
SolverReset
SolverOKDialog setCell:=Range("TotalProfit")
SolverSolve userFinish:=False
描述
本函数允许定义规划求解模型的高级选项。本函数及其参数相当于“规划求解选项”对话框内的选项。
使用本函数之前,必须建立对规划求解加载宏的引用。当 Visual Basic 模块处于活动状态时,单击“工具”菜单中的“引用”命令,然后选中“可使用的引用”列表框中的“Solver.xla”复选框。如果“Solver.xla”未出现在“可使用的引用”列表框中,请单击“浏览”按钮并打开
“ \Excel\Library\Solver”文件夹中的“Solver.xla”。
句法
SolverOptions(MaxTime, Iterations, Precision, AssumeLinear, StepThru,
Estimates, Derivatives, Search, IntTolerance, Scaling, Convergence,
AssumeNonNeg)
MaxTime
Variant 类型,可选。以秒为单位指定 Microsoft Excel 用于求解该问题所花费的时间的最大值。该值必须为正整数。默认值 100 足以解决绝大部分小问题,但该值最大可达 32,767。
Iterations
Variant 类型,可选。Microsoft Excel 解决该问题所要进行的最大迭代次数。该值必须为正整数。默认值 100 足以解决绝大部分小问题,但该值最大可达 32,767。
Precision
Variant 类型,可选。0(零)到 1 之间的数字,用以指定解决该问题时所要达到的精度。默认精度为 0.000001。小数点后零的个数越少(例如0.0001),表示精度越底。通常,指定的精度越高(该数字越小),规划求解时所花费的时间越长。
AssumeLinear
Variant 类型,可选。若指定为 True,则规划求解时将假定模型是线性的。这将加快求解速度,但仅应当用于模型中所有的关系均为线性的情况。默认值为 False。
StepThru
Variant 类型,可选。若指定为 True,则规划求解中每次试解时都将暂停。可用 SolverSolve 函数的 ShowRef 参数指定在每次暂停时要运行的宏。若指定为 False,则每次试解时规划求解进程不暂停。默认值为 False。
Estimates
Variant 类型,可选。指定用于估计每个一维基本变量初始值的方法: 1 表示正切函数估值,而 2 表示二次方程估值。正切函数估值使用正切矢量的线性外插法。二次方程估值使用二次外插法;这将有利于求解高度非线性的问题。默认值为 1(正切函数估值)。
Derivatives
Variant 类型,可选。指定目标函数和约束函数的偏导式估值使用向前差分还是中心差分: 1 表示向前差分,而 2 表示中心差分。中心差分所需的工作表重新计算较多,但如果求解某些问题时出现“规划求解无法改善解”之类的信息,则使用中心差分将有所帮助。对约束函数在极限值附近变化很陡的情况,应使用中心差分。默认值为 1(向前差分)。
Search
Variant 类型,可选。用 Search 选项指定每次迭代时所使用的搜索算法,该搜索算法将决定搜索的方向: 1 表示牛顿法,而 2 表示共轭法。使用准牛顿搜索方法的牛顿法是默认的搜索方法。该方法通常比共轭法所需内存要多,但迭代次数较少。共轭渐进搜索所要求的内存较牛顿法为少,但要达到特定水平的精确度所需的迭代次数较多。如果所要求解的问题较大,必须考虑内存使用情况的话,可试用此方法。如果各次成功试解之间的迭代过程很慢,共轭法就尤为有用。
IntTolerance
Variant 类型,可选。表示整数允许误差的 0 到 1 之间的小数。本参数仅用于定义了整数约束条件的情况。当在问题中的任意要素上使用了整数约束条件后,该数字代表在优化解中允许这些要素偏离整数的程度,以百分比误差表示。较高的允许误差(允许偏离的百分比)有助于加快求解过程。
Scaling
Variant 类型,可选。在两个或多个约束条件之间数量级相差较大的情况下,如果将本参数指定为 True,规划求解时将自动把这些约束条件调整到同一数量级上。当输入(“规划求解参数”对话框内的“可变单元格”编辑框)和输出(“规划求解参数”对话框内的“设置目标单元格”编辑框和“约束”编辑框)之间的数量级相差过大时,这一特性特别有用;例如百万美元数量级的投资的最大利润率问题。若指定为 False,规划求解时将不调整各约束条件的比例。默认值为 False。
Convergence
Variant 类型,可选。表示非线性规划求解的收敛度的 0 到 1 之间的小数。
当最后五次迭代中目标单元格值的相对改变量小于此误差时,规划求解将停止,并显示消息“ 规划求解收敛于当前解。所有约束条件都得到满足”。
AssumeNonNeg
Variant 类型,可选。若指定为 True,则规划求解时,将假定所有未在“约束”列表框中显式指明下限值的可变单元格均以 0(零)为下限(即这些单元格只能包含非负值)。若指定为 False,规划求解将仅使用“约束”列表框中指定的下限。
另见
示例
本示例将 Precision 选项设置为 0.001。
Worksheets("Sheet1").Activate
SolverReset
SolverOptions Precision:=0.001
SolverOK SetCell:=Range("TotalProfit"), _
MaxMinVal:=1, _
ByChange:=Range("C4:E6")
SolverAdd CellRef:=Range("F4:F6"), _
Relation:=1, _
FormulaText:=100
SolverAdd CellRef:=Range("C4:E6"), _
Relation:=3, _
FormulaText:=0
SolverAdd CellRef:=Range("C4:E6"), _
Relation:=4
SolverSolve UserFinish:=False
SolverSave SaveArea:=Range("A33")
描述
重置“规划求解参数”对话框中的所有单元格引用和约束条件,并将“规划求解选项”对话框中的所有设定恢复为默认值。相当于单击“规划求解参数”对话框中的“全部重设”按钮。调用 SolverLoad 函数时将自动调用 SolverReset 函数。
使用本函数之前,必须建立对规划求解加载宏的引用。当 Visual Basic 模块处于活动状态时,单击“工具”菜单中的“引用”命令,然后选中“可使用的引用”列表框中的“Solver.xla”复选框。如果“Solver.xla”未出现在“可使用的引用”列表框中,请单击“浏览”按钮并打开“ \Excel\Library\Solver”文件夹中的“Solver.xla”。
句法
SolverReset()
示例
本示例在定义新问题之前,将规划求解的设定重置为默认值。
Worksheets("Sheet1").Activate
SolverReset
SolverOptions Precision:=0.001
SolverOK SetCell:=Range("TotalProfit"), _
MaxMinVal:=1, _
ByChange:=Range("C4:E6")
SolverAdd CellRef:=Range("F4:F6"), _
Relation:=1, _
FormulaText:=100
SolverAdd CellRef:=Range("C4:E6"), _
Relation:=3, _
FormulaText:=0
SolverAdd CellRef:=Range("C4:E6"), _
Relation:=4
SolverSolve UserFinish:=False
SolverSave SaveArea:=Range("A33")
描述
保存工作表中的规划求解问题说明。
使用本函数之前,必须建立对规划求解加载宏的引用。当 Visual Basic 模块处于活动状态时,单击“工具”菜单中的“引用”命令,然后选中“可使用的引用”列表框中的“Solver.xla”复选框。如果“Solver.xla”未出现在“可使用的引用”列表框中,请单击“浏览”按钮并打开“ \Excel\Library\Solver”文件夹中的“Solver.xla”。
句法
SolverSave(SaveArea)
SaveArea
Variant 类型,必选。指定单元格区域,规划求解模型将保存于此区域中。
SaveArea
参数所代表的区域可位于任意工作表上,但如果该工作表不是活动的,就必须指明该工作表。例如, SolverSave("Sheet2!A1:A3")将规划求解模型保存到了工作表“Sheet2”中,即便该工作表不是活动工作表。
另见
示例
本示例在商业问题中使用规划求解函数,以使总利润达到最大值。SolverSave
函数将当前问题保存到活动工作表上的某一区域。
Worksheets("Sheet1").Activate
SolverReset
SolverOptions Precision:=0.001
SolverOK SetCell:=Range("TotalProfit"), _
MaxMinVal:=1, _
ByChange:=Range("C4:E6")
SolverAdd CellRef:=Range("F4:F6"), _
Relation:=1, _
FormulaText:=100
SolverAdd CellRef:=Range("C4:E6"), _
Relation:=3, _
FormulaText:=0
SolverAdd CellRef:=Range("C4:E6"), _
Relation:=4
SolverSolve UserFinish:=False
SolverSave SaveArea:=Range("A33")
描述
开始执行规划求解的求解过程。相当于单击“规划求解参数”对话框中的“求解”按钮。使用本函数之前,必须建立对规划求解加载宏的引用。当 Visual Basic 模块处于活动状态时,单击“工具”菜单中的“引用”命令,然后选中“可使用的引用”列表框中的“Solver.xla”复选框。如果“Solver.xla”未出现在“可使用的引用”列表框中,请单击“浏览”按钮并打开“ \Excel\Library\Solver”文件夹中的“Solver.xla”。
句法
SolverSolve(UserFinish, ShowRef)
UserFinish
Variant 类型,可选。若指定为 True,则返回结果时不显示“规划求解结果”对话框。若指定为 False 或省略本参数,则返回结果的同时还显示“规划求解结果”对话框。ShowRef
Variant 类型,可选。仅当将 SolverOptions 函数的 StepThru 参数设置为True 时,才使用本参数。可用字符串将某宏的名称传递给本参数。这样每次规划求解得出中间解后都将调用该宏。
另见
示例
本示例在商业问题中使用规划求解函数,以使总利润达到最大值。
SolverSolve 函数开始执行规划求解。
Worksheets("Sheet1").Activate
SolverReset
SolverOptions Precision:=0.001
SolverOK SetCell:=Range("TotalProfit"), _
MaxMinVal:=1, _
ByChange:=Range("C4:E6")
SolverAdd CellRef:=Range("F4:F6"), _
Relation:=1, _
FormulaText:=100
SolverAdd CellRef:=Range("C4:E6"), _
Relation:=3, _
FormulaText:=0
SolverAdd CellRef:=Range("C4:E6"), _
Relation:=4
SolverSolve UserFinish:=False
SolverSave SaveArea:=Range("A33")
适用于
Range 对象
描述
对数据透视表、单元格区域或当前区(如果指定区域仅包含单个单元格)
进行排序。
句法
expression.Sort(Key1,Order1,Key2,Type, Order2, Key3, Order3, Header,
OrderCustom, MatchCase, Orientation, SortMethod)
expression
必选。该表达式返回 Range 对象。
Key1
Variant 类型,可选。第一个排序字段,可用文字(数据透视表字段或单元格区域名称)或 Range 对象指定(例如“Dept”或 Cells(1, 1) )。
Order1
Variant 类型,可选。可为下列 XlSortOrder 常量之一: xlAscending 或xlDescending。用 xlAscending 表示以升序排列 Key1。用 xlDescending 表示以降序排列 Key1。默认值为 xlAscending。
Key2
Variant 类型,可选。第二个排序字段,可用文字(数据透视表字段或单元格区域名称)或 Range 对象指定。如果省略本参数,则没有第二个排序字段。对数据透视表排序时不用。Type
Variant 类型,可选。指定参与排序的要素。可为下列 XlSortType 常量之一: xlSortValues 或 xlSortLabels。仅用于对数据透视表的排序。
Order2
Variant 类型,可选。可为下列 XlSortOrder 常量之一: xlAscending 或xlDescending。用 xlAscending 表示以升序排列 Key2。用 xlDescending 表示以降序排列 Key2。默认值为 xlAscending。对数据透视表排序时不用。
Key3
Variant 类型,可选。第三个排序字段,可用文字(数据透视表字段或单元格区域名称)或 Range 对象指定。如果省略本参数,则没有第三个排序字段。对数据透视表排序时不用。
Order3
Variant 类型,可选。可为下列 XlSortOrder 常量之一: xlAscending 或xlDescending。用 xlAscending 表示以升序排列 Key3。用 xlDescending 表示以降序排列 Key3。默认值为 xlAscending。对数据透视表排序时不用。
Header
Variant 类型,可选。指定第一行是否包含标题。可为下列 XlYesNoGuess 常量之一:xlYes,xlNo 或 xlGuess。如果首行包含标题(不对首行排序),
就指定 xlYes。如果首行不包含标题(对整个区域排序),就指定 xlNo。若指定为 xlGuess,将由 Microsoft Excel 判断是否有标题及标题位于何处。
默认值为 xlNo。对数据透视表排序时不用。
OrderCustom
Variant 类型,可选。以从 1 开始的整数指定在自定义排序顺序列表中的索引号。如果省略本参数,就使用 1(“常规”)。
MatchCase
Variant 类型,可选。若指定为 True,则进行区分大小写的排序;若指定为False,则排序时不区分大小写。对数据透视表排序时不用。
Orientation
Variant 类型,可选。如果使用 xlSortRows,排序将从上到下(按行)进行。如果使用为 xlSortColumns,排序将从左到右(按列)进行。
SortMethod
Variant 类型,可选。排序方式。可为下列 XlSortMethod 常量之一:
xlPinYin或 xlStrike。一些常量可能无效,由所选择或安装的语言支持(例如:英语)决定。
说明
每次用此方法时,对Header, Order1, Order2, Order3, OrderCustom和Orientation的设置都将被保存。如果第二次调用此方法时未对这些变量赋值,原来存储的值仍然有效。为了避免这个问题,请在每次调用此方法时明确的设定值。
另见
示例
本示例对工作表“Sheet1”上的单元格区域“A1:C20”进行排序,用单元格“A1”作为第一关键字,用单元格“B1”作为第二关键字。排序是按行以升序进行的,没有标题。
Worksheets("Sheet1").Range("A1:C20").Sort _
Key1:=Worksheets("Sheet1").Range("A1"), _
Key2:=Worksheets("Sheet1").Range("B1")
本示例对工作表“Sheet1”上包含单元格“A1”的当前区进行排序,按第一列中的数据进行排序,并且自动判断是否存在标题行。Sort 方法将自动判断当前区。
Worksheets("Sheet1").Range("A1").Sort _
Key1:=Worksheets("Sheet1").Columns("A"), _
Header:=xlGuess
适用于
Range 对象
描述
句法 1:使用远东排序法对指定区域进行排序,如果该区域只含有一个单元格,则对当前区域进行排序。
句法
2:使用远东排序法对数据透视表进行排序。有关的详细内容,另见参数列表。
句法
1expression.SortSpecial(SortMethod, Key1, Order1, Key2, Type, Order2, Key3,Order3, Header, OrderCustom, MatchCase, Orientation)
句法 2
expression.SortSpecial(SortMethod, Key1, Order1, Type, OrderCustom,Orientation)
expression
必选。该表达式返回一个 Range 对象。
SortMethod
Variant 类型,可选。指定排序方式。可为以下 XlSortMethod 常数之一:
xlPinYin或者 xlStroke。一些常量可能无效,由所选择或安装的语言(如:美语)支持决定。
Key1
Variant 类型,可选。第一个排序字段,为文本(数据透视表字段或区域名)
或者 Range 对象 (例如,"Dept" 或 Cells(1, 1))。
Order1
Variant 类型,可选。可为以下 XlSortOrder 常数之一: xlAscending 或xlDescending。使用 xlAscending 可对 Key1 按升序排序。使用xlDescending 可对 Key1 按降序排序。默认值为 xlAscending。
Key2
Variant 类型,可选。第二个排序字段,为文本(数据透视表字段或区域名)或者 Range 对象。如果省略此参数,则没有第二个排序字段。对数据透视表进行排序时不使用此参数。
Type
Variant 类型,可选。指定排序的元素。可为下列 XlSortType 常数之一:
xlSortValues 或 xlSortLabels。仅在对数据透视表排序时使用。
Order2
Variant 类型,可选。可为以下 XlSortOrder 常数之一: xlAscending 或xlDescending。使用 xlAscending 可对 Key2 按升序排序。使用xlDescending 可对 Key2按降序排序。默认值为 xlAscending。对数据透视表进行排序时不使用此参数。
Key3
Variant 类型,可选。第三个排序字段,为文本(区域名)或者 Range 对象。如果省略此参数,则没有第三个排序字段。对数据透视表进行排序时不使用此参数。
Order3
Variant 类型,可选。可为以下 XlSortOrder 常数之一: xlAscending 或xlDescending。使用 xlAscending 可对 Key3 按升序排序。使用xlDescending 可对 Key3 按降序进行排序。默认值为 xlAscending。对数据透视表进行排序时不使用此参数。
Header
Variant 类型,可选。指定第一行是否含有标题。可为以下 XlYesNoGuess 常数之一:xlYes,xlNo或 xlGuess。如果第一列含有标题行则使用 xlYes(标题行不应参加排序)。如果第一列不含有标题行则使用 xlNo(参加排序的整个区域)。使用 xlGuess 可由 Microsoft Excel 判断是否有标题行,如有则确定其位置。默认值为 xlNo。对数据透视表进行排序时不使用此参数。
OrderCustom
Variant 类型,可选。以 1 为单位的在自定义排序顺序列表的整数偏移量。
如果省略此参数,则使用 1(普通)。
MatchCase
Variant 类型,可选。如果为 True,排序时区分大小写;如果为 False,排序时不区分大小写。对数据透视表进行排序时不使用此参数。
Orientation
Variant 类型,可选。如果取值为 xlTopToBottom 或者省略此参数,排序将从上到下(按行)进行。如果取值为 xlLeftToRight,排序将从左到右(按列)进行。
另见
示例
本示例对 Sheet1 中的 A1:G37 区域进行排序,用 A1 单元格作为第一个排序项,C1 单元格作为第二个排序项,按代码页和行进行升序排序。该区域中没有标题行。
Worksheets("Sheet1").Range("A1:G37").SortSpecial _
sortMethod:=xlStroke, _
key1:=Range("A1"), order1:=xlAscending, _
key2:=Range("C1"), order2:=xlAscending
描述
由于Microsoft Excel 已经删除了声音注释,故此对象无效。
属性
Application 属性,Creator 属性,Parent 属性
方法
Delete 方法,Import 方法,Play 方法,Record 方法
适用于
Range 对象
描述
由于Microsoft Excel 已经删除了声音注释,故此对象无效。
另见
适用于
PublishObject 对象
描述
返回一个唯一的名称,用于标识其 SourceType 属性值为 xlSourceRange,xlSourceChart, xlSourcePrintArea, xlSourceAutoFilter, xlSourcePivotTable或 xlSourceQuery 的项。如果 SourceType 属性设置为 xlSourceRange,则本属性返回一个区域,该区域可以是一个定义的名称。如果 SourceType属性设置为 xlSourceChart, xlSourcePivotTable 或 xlSourceQuery,则本属性返回对象的名称,例如:图表名称、数据透视表报表名称或查询表名称。只读。String 类型。
示例
本示例确定保存为 Web 页的第一个图表(在第一个工作簿中)的唯一名称,
然后将 Boolean 类型的变量 blnChartFound 设置为 True。如果文档中没有保存为图表组件的项,则 blnChartFound 为 False。
blnChartFound = False
For Each objPO In Workbooks(1).PublishObjects
If objPO.SourceType = xlSourceChart Then
strFirstPO = objPO.Source
blnChartFound = True
Exit For
End If
Next objPO
适用于
PivotCache 对象, PivotTable 对象
描述
Variant 类型,返回数据透视表的数据源,如下表所示。只读。
| 数据源 | 返回值 |
| Microsoft Excel 列表或数据库 | 以文本方式返回的单元格引用。 |
| 外部数据源 | 数组。每行包含一个 SQL 连接串,该行的剩余元素作为查询串,按 200 个字符为单位分段。 |
| 多重合并计算区域 | 二维数组。每行由一个引用及与其相关联的页字段组成。 |
| 其它的数据透视表 | 以上三种情形之一。 |
说明
此属性对OLE DB数据源无效。
示例
假定用外部数据源在 Sheet1 中创建数据透视表。本示例将指定 SQL 连接串和查询串插入到新工作表中。
Set newSheet = ActiveWorkbook.Worksheets.Add
sdArray = Worksheets("Sheet1").UsedRange.PivotTable.SourceData
For i = LBound(sdArray) To UBound(sdArray)
newSheet.Cells(i, 1) = sdArray(i)
Next I
适用于
OLEObject 对象,OLEObjects 集合对象,PivotField 对象,PivotItem 对象
描述
对于 OLEObject 对象,OLEObjects 对象:返回或者设置指定对象的链接源的名称。String 类型,可读写。
对于 CubeField,PivotField,PivotItem 对象:返回指定对象的名称,与指定数据透视表报表的初始数据源相同。如果用户创建数据透视表报表之后对数据项继续重命名的话,则数据项的当前名称可能会有所不同。String类型,只读。
下表显示 SourceName 属性及其相关属性的示例值,假设存在唯一名称是“[Europe].[France].[Paris]數?OLAP 数据源,并且存在包含名为“Paris斚畹姆?OLAP 数据源。
| 属性 | 值(OLAP 数据源) | 值(非 OLAP 数据源) |
| 标题 | Paris | Paris |
| 名称 | [Europe].[France].[Paris](只读) | Paris |
| 源名称 | [Europe].[France].[Paris] (只读) | (与 SQL 属性值相同,只读) |
| 值 | [Europe].[France].[Paris] (只读) | Paris |
当向 PivotItems 集合中指定一个索引号时,可以使用下表所示的句法。
句法(OLAP 数据源) 句法(非 OLAP 数据源)
expression.PivotItems("[Europe].[France].[Paris]") expression.PivotItems) ("Paris")
在使用 Item 属性引用集合中的特定成员时,可以使用下表所示的文字索引名称。
| 名称(OLAP 数据源) | 名称(非 OLAP 数据源) |
| [Europe].[France].[Paris] | Paris |
示例
本示例显示包含活动单元格的数据项的初始名称(在源数据库中的名称)。
Worksheets("Sheet1").Activate
ActiveSheet.PivotTables(1).PivotSelect "1998", xlDataAndLabel
MsgBox "The original item name is " & _
ActiveCell.PivotItem.SourceName
适用于
Parameter 对象
描述
返回一个 Range 对象,该对象代表包含指定查询参数值的单元格。只读。
示例
本示例对作为查询数据源的单元格的值进行更改。
Set qt = Sheets("Sheet1").QueryTables(1)
Set param1 = qt.Parameters(1)
Set r = param1.SourceRange
r.Value = "New York"
qt.Refresh
适用于
PublishObject 对象
描述
返回一个值,用于标识所发布项的类型。可以是下列 XlSourceType 常量之一:
xlSourceAutoFilter,xlSourceChart,xlSourcePivotTable,xlSourcePrintArea,xlSourceQuery,xlSourceRange,xlSourceSheet 或xlSourceWorkbook。Source 属性返回对象的唯一名称。只读。XlSourceType类型。
示例
本示例确定保存为 Web 页的第一个图表(在第一个工作簿中)的唯一名称,然后将 Boolean 类型的变量 blnChartFound 设置为 True。如果文档中没有保存为图表组件的项,则 blnChartFound 为 False。blnChartFound = FalseFor Each objPO In Workbooks(1).PublishObjects If objPO.SourceType = xlSourceChart Then strFirstPO = objPO.Source blnChartFound = True Exit For End IfNext objPO
适用于
Range 对象
描述
返回一个 Range 对象,此对象代表与指定类型及值相匹配的所有单元格。
句法
expression.SpecialCells(Type, Value)
expression
必选。该表达式返回一个 Range 对象。Type
Long 类型,必选。要包含的单元格。可为以下 XlCellType 常量之一:
| 常量 | 描述 |
| xlCellTypeAllFormatConditions | 任何格式单元格 |
| xlCellTypeAllValidation | 有有效准则的单元格 |
| xlCellTypeBlanks | 空单元格 |
| xlCellTypeComments | 包含注解的单元格 |
| xlCellTypeConstants | 包含常量的单元格 |
| xlCellTypeFormulas | 包含公式的单元格 |
| xlCellTypeLastCell | 已用区域中的最后一个单元格 |
| xlCellTypeSameFormatConditions | 有相同格式的单元格 |
| xlCellTypeSameValidation | 有相同有效准则的单元格 |
| xlCellTypeVisibe | 所有可见的单元格 |
Value
Variant 类型,可选。如果 Type 为 xlCellTypeConstants 或
xlCellTypeFormulas 之一,此参数可用于确定结果中应包含哪几类单元格。
将某几个值相加可使此方法返回多种类型的单元格。默认情况下将选定所
有常量或公式,对其类型则不加区别。可为以下 XlSpecialCellsValues 常
量之一:xlErrors,xlLogical,xlNumbers或xlTextValues。
示例
本示例选定 Sheet1 中已用区域的最后一个单元格。
Worksheets("Sheet1").Activate
ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Activate
适用于
Window 对象
描述
如果指定窗口被拆分则为 True。Boolean 类型,可读写。
说明
可以使 FreezePanes 属性为 True 同时使 Split 属性为 False,或者FreezePanes 为 False 同时 Split 为 True。
本属性仅应用于工作表和宏表。
示例
本示例在 Book1.xls 当前窗口的 B2 单元格处拆分此窗口,但不冻结窗格。
此拆分使 Split 属性返回 True。
Workbooks("BOOK1.XLS").Worksheets("Sheet1").Activate
With ActiveWindow
.SplitColumn = 2
.SplitRow = 2
End With
本示例示范了两种取消由上一示例所进行的拆分的方法。
Workbooks("BOOK1.XLS").Worksheets("Sheet1").Activate
ActiveWindow.Split = False'方法一
Workbooks("BOOK1.XLS").Worksheets("Sheet1").Activate
ActiveWindow.SplitColumn = 0'方法二
ActiveWindow.SplitRow = 0
本示例取消指定的窗口拆分。在取消窗口拆分之前,须先将 FreezePanes 属
性设为 False 以便取消冻结窗格。
Workbooks("BOOK1.XLS").Worksheets("Sheet1").Activate
With ActiveWindow
.FreezePanes = False
.Split = False
End With
适用于
Window 对象
描述
返回或者设置将指定窗口拆分成窗格处的列号(拆分线左侧的列数)。Long
类型,可读写。
另见
SplitHorizontal 属性, SplitRow 属性, SplitVertical 属性
示例
本示例对指定窗口进行拆分,拆分线左边留有 1.5 列宽。
Workbooks("BOOK1.XLS").Worksheets("Sheet1").Activate
ActiveWindow.SplitColumn = 1.5
适用于
Window 对象
描述
返回或者设置窗口水平拆分线的位置,以磅为单位。Double 类型,可读写。
另见
SplitColumn 属性, SplitRow 属性, SplitVertical 属性
示例
本示例设置当前窗口的水平拆分线位置为 216 磅(3 英寸)。
Workbooks("BOOK1.XLS").Worksheets("Sheet1").Activate
ActiveWindow.SplitHorizontal = 216
适用于
Window 对象
描述
返回或者设置将指定窗口拆分成窗格处的行号(拆分线以上的行数)。Long类型,可读写。
另见
SplitColumn 属性, SplitHorizontal 属性, SplitVertical 属性
示例
本示例拆分当前窗口,并使拆分线以上有 10 行。
Workbooks("BOOK1.XLS").Worksheets("Sheet1").Activate
ActiveWindow.SplitRow = 10
适用于
ChartGroup 对象
描述
返回或设置在复合饼图或复合柱饼图中拆分两段的方式。可为下列XlChartSplitType 常量之一:
xlSplitByPosition,xlSplitByPercentValue,xlSplitByCustomSplit 或 xlSplitByValue。Long 类型,可读写。
另见
示例
本示例必须在复合饼图或复合柱饼图中运行。 本示例以数值拆分图表的两段,在主段中合并所有小于 10 的数值,并在次段中显示之。
With Worksheets(1).ChartObjects(1).Chart.ChartGroups(1)
.SplitType = xlSplitByValue
.SplitValue = 10
.VaryByCategories = True
End With
适用于
ChartGroup 对象
描述
返回或设置复合饼图或复合柱饼图中分隔两段的阈值。Variant 类型,可读写。
另见
示例
本示例必须在复合饼图或复合柱饼图中运行。 本示例以数值拆分图表的两段,在主段中合并所有小于 10 的数值,并在次段中显示之。
With Worksheets(1).ChartObjects(1).Chart.ChartGroups(1)
.SplitType = xlSplitByValue
.SplitValue = 10
.VaryByCategories = True
End With
适用于
Window 对象
描述
返回或者设置窗口垂直拆分线的位置,以磅为单位。Double 类型,可读写。
另见
SplitColumn 属性, SplitHorizontal 属性, SplitRow 属性
示例
本示例设置当前窗口的垂直拆分线位置为 216 磅(3 英寸)。
Workbooks("BOOK1.XLS").Worksheets("Sheet1").Activate
ActiveWindow.SplitVertical = 216
描述
请勿在“Xlodbc.xla”加载宏中使用 SQLBind 及其它 ODBC 函数;请用ActiveX数据对象(ADO)库中的对象、方法和属性代之。
当用 SQLRetrieve 或 SQLRetrieveToFile 函数检索到数据后,要用SQLBind 函数指定结果应放置的位置。还可用 SQLBind 函数修改查询所得的结果集合的列顺序,或将结果集合放置在工作表中非邻接的列中。
本函数包含在“Xlodbc.xla”加载宏中。使用本函数之前,必须使用“工具”菜单中的“引用”命令建立对该加载宏的引用。
句法
SQLBind(ConnectionNum, Column, Reference)
ConnectionNum
必选。指定将要绑定检索结果的数据源的唯一连接标识,该连接标识由SQLOpen 函数返回。
Column
可选。结果集合中要绑定的列的列号。结果集合中的列从左至右编号,从 1开始。如果省略 Column,则 ConnectionNum 指定的数据源的所有绑定都将取消。
第 0(零)列包含结果集合的行号。可绑定第 0(零)列以获得行号。
Reference
可选。指定工作表上单个单元格的 Range 对象,结果将绑定在该单元格的位置上。如果省略 Reference,指定列的绑定将被去掉。
返回值
本函数返回数组,该数组包含当前连接中已绑定列的列号。
如果 SQLBind 无法将指定列绑定到指定位置,它将返回第 2042 号错误。
如果 ConnectionNum 无效,或指定的单元格位置无效, SQLBind 返回第 2015 号错误。
如果 Reference 指定的区域包含不止一个单元格, SQLBind 返回第 2023号错误。
如果未在 SQLRetrieve 函数中指定结果位置参数, SQLBind 将把结果集合置于 Reference 所指定的位置。
说明
SQLBind 通知 ODBC 控制面板管理器,当用 SQLRetrieve 函数检索到数据后,应在何处放置这些数据。结果将置于指定单元格及紧靠该单元格下方的单元格中。
如果希望将不同列的数据放在工作表上不连续的区域中,就可使用
SQLBind 函数。
应对结果集合中的每一列都使用 SQLBind 函数。只要 ConnectionNum 所指定的连接处于打开状态,该连接的绑定就是有效的。
应在调用 SQLOpen 函数和 SQLExecQuery 函数之后,及调用SQLRetrieve 函数或 SQLRetrieveToFile 函数之前调用 SQLBind 函数。
对 SQLBind 函数的调用不影响已检索到的数据结果。
另见
SQLClose 函数, SQLError 函数, SQLExecQuery 函数, SQLGetSchema 函数, SQLOpen 函数, SQLRequest 函数, SQLRetrieve 函数, SQLRetrieveToFile 函数
示例
本示例在“NorthWind”SQLBind 函数,在工作表“Sheet1斨薪鱿允静檠峁现械牡谒牧泻偷诰帕校ú访坪投┗跏浚
databaseName = "Northwind"
queryString =
_ "SELECT * FROM product.dbf WHERE (product.ON_ORDER<>0)"
chan = SQLOpen("DSN=" & databaseName)
SQLExecQuery chan, queryString
Set output1 = Worksheets("Sheet1").Range("A1")
Set output2 = Worksheets("Sheet1").Range("B1")
SQLBind chan, 4, output1
SQLBind chan, 9, output2
SQLRetrieve chanSQLClose chan
描述
请勿在“Xlodbc.xla”加载宏中使用 SQLClose 及其它 ODBC 函数;请用ActiveX数据对象(ADO)库中的对象、方法和属性代之。
SQLClose 关闭与外部数据源的连接。
本函数包含在“Xlodbc.xla”加载宏中。使用本函数之前,必须使用“工具”菜单中的“引用”命令建立对该加载宏的引用。
句法
SQLClose(ConnectionNum)
ConnectionNum
必选。要中断连接的数据源的唯一连接标识。
返回值
如果成功地中断了该连接,本函数返回 0(零),且指定的连接标识不再有效。
如果 ConnectionNum 无效,本函数返回第 2015 号错误。
如果 SQLClose 无法中断与数据源的连接,它将返回第 2042 号错误。
另见
SQLBind 函数, SQLError 函数, SQLExecQuery 函数, SQLGetSchema 函数, SQLOpen 函数, SQLRequest 函数, SQLRetrieve 函数, SQLRetrieveToFile 函数
示例
本示例在“NorthWind斒菘馍现葱胁檠O允驹诠ぷ鞅怼癝heet1斏系牟檠峁堑鼻耙讯┗醯牟妨斜怼atabaseName = "Northwind"
queryString = _
"SELECT * FROM product.dbf WHERE (product.ON_ORDER<>0)"
chan = SQLOpen("DSN=" & databaseName)
SQLExecQuery chan, queryString
Set output = Worksheets("Sheet1").Range("A1")
SQLRetrieve chan, output, , , True
SQLClose chan
描述
请勿在“Xlodbc.xla”加载宏中使用 SQLError 及其它 ODBC 函数;请用ActiveX数据对象(ADO)库中的对象、方法和属性代之。
当其它 ODBC 函数的调用失败后,调用 SQLError 函数将返回详细的错
误信息。如果 SQLError 函数自身的调用也失败,就无法返回错误信息。
每当 ODBC 函数调用失败后,都将在内存中定义和存储错误信息。调用SQLError 函数即可获取这些错误信息。
SQLError 仅提供 ODBC 函数失败时所发生错误的详细错误信息。它不提供关于 Microsoft Excel 错误的信息。
本函数包含在“Xlodbc.xla”加载宏中。使用本函数之前,必须使用“工具”菜单中的“引用”命令建立对该加载宏的引用。
句法
SQLError()
返回值
如果存在错误, SQLError 函数将返回包含详细错误信息的二维数组,该数组中每一行说明一个错误。
通过 SQLError 函数所获得的信息中,每一行包含下列三个域:
指明 ODBC 错误类和子类的字符串。
表示数据源本地错误代码的数字。
说明该错误的文字消息。
如果先前的函数调用引起了若干错误, SQLError 将为每个错误创建一行。
如果先前的 ODBC 函数调用未引起任何错误,本函数仅返回第 2042 号错误。
另见
SQLBind 函数, SQLClose 函数, SQLError 函数, SQLExecQuery 函数
示例
本示例在打开与“NorthWind”数据库的连接时,有意将数据源名称拼错,从而构成不正确的连接字符串而引起错误。错误信息显示在工作表“Sheet1”中。
chan = SQLOpen("DSN=Nortwind")returnArray = SQLError()
For i = LBound(returnArray, 1) To UBound(returnArray, 1)
Worksheets("Sheet1").Cells(1, i).Formula = returnArray(i)
Next I
SQLClose chan
描述
请勿在“Xlodbc.xla”加载宏中使用 SQLExecQuery 及其它 ODBC 函数;请用ActiveX数据对象(ADO)库中的对象、方法和属性代之。
用 SQLOpen 函数建立与数据源的连接后, SQLExecQuery 函数在该数据源上执行查询。
SQLExecQuery 函数仅用于执行查询。获取结果要用 SQLRetrieve 或SQLRetrieveToFile 函数。
本函数包含在“Xlodbc.xla”加载宏中。使用本函数之前,必须使用“工具”菜单中的“引用”命令建立对该加载宏的引用。
句法
SQLExecQuery(ConnectionNum, QueryText)
ConnectionNum
必选。指定要查询的数据源的唯一连接标识,该连接标识由 SQLOpen 函数返回。
QueryText必选。要在数据源上执行的查询。该查询必须遵循特定 ODBC 驱动程序的SQL 句法准则。
返回值
SQLExecQuery 函数的返回值依赖于所执行的 SQL 语句,如下表所示。
| SQL 语句 | 返回值 |
| SELECT | 结果集合中的列数 |
| UPDATE, INSERT 或 DELETE | 该语句所影响的行数 |
| 其它有效的 SQL 语句 | 0(零) |
如果 SQLExecQuery 无法在指定数据源上执行查询,将返回第 2042 号错误。
如果 ConnectionNum 无效, SQLExecQuery 将返回第 2015 号错误。
说明
调用 SQLExecQuery 函数之前,必须用 SQLOpen 函数建立与数据源的连接。由 SQLOpen 函数返回的唯一连接标识,将被 SQLExecQuery 函数用于向数据源发送查询。
如果用先前使用过的连接标识调用 SQLExecQuery 函数,那么该连接中搁置的结果将由新的查询所得的结果取代。
另见
SQLBind 函数, SQLClose 函数, SQLError 函数, SQLGetSchema 函数, SQLOpen函数, SQLRequest 函数, SQLRetrieve 函数, SQLRetrieveToFile 函数
示例
本示例在“Northwind”数据库上执行查询。显示在工作表“Sheet1”上的查询结果是当前已订货的产品列表。
databaseName = "Northwind"
queryString = _
"SELECT * FROM product.dbf WHERE (product.ON_ORDER<>0)"
chan = SQLOpen("DSN=" & databaseName)
SQLExecQuery chan, queryString
Set output = Worksheets("Sheet1").Range("A1")
SQLRetrieve chan, output, , , True
SQLClose chan
描述
请勿在“Xlodbc.xla”加载宏中使用 SQLGetSchema 及其它 ODBC 函数;
请用ActiveX数据对象(ADO)库中的对象、方法和属性代之。
SQLGetSchema 返回特定连接中的数据源结构的信息。
本函数包含在“Xlodbc.xla”加载宏中。使用本函数之前,必须使用“工具”菜单中的“引用”命令建立对该加载宏的引用。
句法
SQLGetSchema(ConnectionNum, TypeNum, QualifierText)
ConnectionNum
必选。指定要获取信息的数据源的唯一连接标识,该连接标识由 SQLOpen函数返回。
TypeNum
必选。指定要返回的信息的类型,如下表所示。
| 值 | 含义 |
| 1 | 所有可用数据源的列表。 |
| 2 | 当前连接中的数据库的列表。 |
| 3 | 当前连接中某数据库中的对象所有者的列表。 |
| 4 | 当前连接的指定数据库中指定所有者的表格的列表。 |
| 5 | 特定表格中的列和这些列的 ODBC SQL 数据类型的列表,以二维数组的形式给出。数组中每一行的第一个域包含列的名称,第二个域为该列的 ODBC SQL 数据类型。 |
| 6 | 当前用户的用户标识。 |
| 7 | 当前数据库的名称。 |
| 8 | 在安装时定义的或由 ODBC 控制面板管理器定义的数据源的名称。 |
| 9 | 数据库所使用的 DBMS(数据库管理系统)的名称。例如 ORACLE 或SQL Server。 |
| 10 | 数据源的服务器名称。 |
| 11 | 数据源用于表示所有者的术语。例如“owner”,“Authorization ID”或“Schema”。 |
| 12 | 数据源用于表示表格的术语。例如“table”或“file”。 |
| 13 | 数据源用于表示识别符的术语。例如“database”或“folder”。 |
| 14 | 数据源用于表示过程的术语。例如“database procedure”,“stored procedure”或“procedure”。 |
QualifierText
可选。仅当 TypeNum 值为 3、 4 和 5 时,本参数才有用。限定所要进行的查找的字符串,如下表所示。
| TypeNum | QualifierText |
| 3 | 当前数据源中的数据库的名称。 SQLGetSchema 将返回该数据库中的表格所有者的姓名。 |
| 4 | 数据库名称和所有者姓名。句法为数据库名称后跟所有者姓名,两者用句点隔开;例如:“ DatabaseName.OwnerName ”。本函数将返回由表格名组成的数组,这些表格处于给定的数据库中,并为给定的所有者所拥有。 |
| 5 | 表格名称。 SQLGetSchema 将返回该表格中列的信息。 |
返回值
SQLGetSchema 函数的成功调用所返回的值依赖于其所要求的信息类型。
如果 SQLGetSchema 无法获得所要求的信息,将返回第 2042 号错误。
如果 ConnectionNum 无效,本函数返回第 2015 号错误。
说明
SQLGetSchema 函数使用 ODBC API 函数 SQLGetInfo 和 SQLTables
去查找所要求的信息。
另见
SQLBind 函数, SQLClose 函数, SQLError 函数, SQLExecQuery 函数, SQLOpen 函数, SQLRequest 函数, SQLRetrieve 函数, SQLRetrieveToFile 函数
示例
本示例检索“NorthWind”数据库的数据库名称和 DBMS(数据库管理系统)名称,并将其显示在消息框中。
databaseName = "Northwind"
chan = SQLOpen("DSN=" & databaseName)
dsName = SQLGetSchema(chan, 8)
dsDBMS = SQLGetSchema(chan, 9)
MsgBox "Database name is " & dsName & ", and its DBMS is " & dsDBMS
SQLClose chan
描述
请勿在“Xlodbc.xla”加载宏中使用 SQLOpen 及其它 ODBC 函数;请用ActiveX数据对象(ADO)库中的对象、方法和属性代之。
SQLOpen 建立与数据源的连接。
本函数包含在“Xlodbc.xla”加载宏中。使用本函数之前,必须使用“工具”菜单中的“引用”命令建立对该加载宏的引用。
句法
SQLOpen(ConnectionStr, OutputRef, DriverPrompt)
ConnectionStr
必选。提供由 ODBC 驱动程序所要求的用于连接数据源的信息;必须遵循该驱动程序所要求的格式。
ConnectionStr
应提供 ODBC 驱动程序用于建立连接的数据源名称和其它信息(例如用户标识和口令)。
在与数据源建立连接之前,必须定义在 ConnectionStr 中使用的数据源名称(DSN)。
OutputRef
可选。Range 对象(必须为单个单元格),用于存储完整连接字符串。
如果希望 SQLOpen 函数将完整连接字符串返回到工作表中时,就要使用OutputRef 参数。
DriverPrompt
可选。指定是否显示驱动程序对话框,以及如果显示的话,其中哪些选项可用。可指定下表所说明的数值之一。如果省略 DriverPrompt, SQLOpen 将以 2 为默认值。
| 值 | 含义 |
| 1 | 总显示驱动程序对话框。 |
| 2 | 仅当连接字符串和数据源说明所提供的信息不足以完成数据源的连接时,才显示驱动程序对话框。对话框中的所有选项均可用。 |
| 3 | 与 2 相同,但对话框中不要求的选项变灰(禁用)。 |
| 4 | 不显示驱动程序对话框。如果连接不成功, SQLOpen 函数将返回错误。 |
返回值
如果成功, SQLOpen 返回一个唯一的连接标识号码。可将该连接标识号码用于其它 ODBC 函数中。
如果 SQLOpen 无法用给定的信息完成连接,将返回第 2042 号错误。附加的错误信息存储在内存中,可用 SQLError 函数获得。
另见
SQLBind 函数, SQLClose 函数, SQLError 函数, SQLExecQuery 函数, SQLGetSchema 函数, SQLRequest 函数, SQLRetrieve 函数, SQLRetrieveToFile 函数
示例
本示例在“Northwind”数据库上执行查询。显示在工作表“Sheet1”上的查询结果是当前已订货的产品列表。
databaseName = "Northwind"queryString = _
"SELECT * FROM product.dbf WHERE (product.ON_ORDER<>0)"
chan = SQLOpen("DSN=" & databaseName)
SQLExecQuery chan, queryString
Set output = Worksheets("Sheet1").Range("A1")
SQLRetrieve chan, output, , , True
SQLClose chan
描述
请勿在“Xlodbc.xla”加载宏中使用 SQLRequest 及其它 ODBC 函数;请用ActiveX数据对象(ADO)库中的对象、方法和属性代之。
SQLRequest 从工作表中连接外部数据源并执行查询,然后用数组返回查询结果。
本函数包含在“Xlodbc.xla”加载宏中。使用本函数之前,必须使用“工具”菜单中的“引用”命令建立对该加载宏的引用。
句法
SQLRequest(ConnectionStr,QueryText, OutputRef, DriverPrompt,
ColNamesLogical)
ConnectionStr
必选。提供由 ODBC 驱动程序用于建立连接的数据源名称和其它信息(例用户标识和口令);必须遵循该驱动程序所要求的格式。
在与数据源建立连接之前,必须定义在 ConnectionStr 中使用的数据源名称(DSN)。
如果 SQLRequest 无法用 ConnectionStr 所提供的信息访问数据源,将返回第 2042 号错误。
QueryTex
必选。要在数据源上执行的 SQL 语句。
如果 SQLRequest 无法在指定的数据源中执行 QueryText 所指定的语句,
将返回第 2042 号错误。
OutputRef
可选。用于存储完整连接字符串的 Range 对象(必须为单个单元格)。
DriverPrompt
可选。指定是否显示驱动程序对话框以及其中哪些选项可用。可指定下表所说明的数值之一。如果省略 DriverPrompt, SQLRequest 将以 2 为默认值。
| 值 | 含义 |
| 1 | 总显示驱动程序对话框。 |
| 2 | 仅当连接字符串和数据源说明所提供的信息不足以完成数据源的连接时,才显示驱动程序对话框。对话框中的所有选项均可用。 |
| 3 | 仅当连接字符串和数据源说明所提供的信息不足以完成数据源的连接时,才显示驱动程序对话框。对话框中不要求的选项变灰(禁用)。 |
| 4 | 对话框不显示。如果连接不成功,将返回错误信息。 |
ColNamesLogica
可选。若指定为 True,则将列名作为结果的第一行返回。若指定为 False,则不返回列名。如果省略 ColNamesLogical,默认值为 False。
说明
SQLRequest 函数的参数顺序与 SQL.REQUEST 宏函数的参数顺序不同。
返回值
如果本函数完成所有操作,将返回包含查询结果的数组,或者受到影响的行数。
如果 SQLRequest 无法完成所有操作,将返回错误值,并将错误信息存储于内存中;可调用 SQLError 函数获取这些错误信息。
如果 SQLRequest 无法用 connectionStr 所提供的信息访问数据源,将返回第 2042 号错误。
另见
SQLBind 函数, SQLClose 函数, SQLError 函数, SQLExecQuery 函数, SQLGetSchema 函数, SQLOpen 函数, SQLRetrieve 函数, SQLRetrieveToFile 函数
示例
本示例在“Northwind”数据库上执行查询。显示在工作表“Sheet1”上的查询结果是当前已订货的产品列表。SQLRequest 函数还将完整连接字符串写入工作表“Sheet2”中。
databaseName = "Northwind"
queryString = _
"SELECT * FROM product.dbf WHERE (product.ON_ORDER<>0)"
returnArray = SQLRequest("DSN=" & databaseName, _
queryString, _
Worksheets("Sheet1").Range("A1"), _
2, True)
For i = LBound(returnArray, 1) To UBound(returnArray, 1)
For j = LBound(returnArray, 2)To UBound(returnArray, 2)
Worksheets("Sheet1").Cells(i, j).Formula = _
returnArray(i, j)
Next j
Next I
描述
请勿在“Xlodbc.xla”加载宏中使用 SQLRetrieve 及其它 ODBC 函数;请用ActiveX数据对象(ADO)库中的对象、方法和属性代之。
SQLRetrieve 检索先前执行的查询的结果的全部或一部分。
调用 SQLRetrieve 函数之前,必须先用 SQLOpen 函数建立连接,再用SQLExecQuery 函数执行查询,从而准备好结果。
本函数包含在“Xlodbc.xla”加载宏中。使用本函数之前,必须使用“工具”菜单中的“引用”命令建立对该加载宏的引用。
句法
SQLRetrieve(ConnectionNum,DestinationRef,MaxColumns,MaxRows,ColNamesLogical, RowNumsLogica, NamedRngLogical, FetchFirstLogical)
ConnectionNum
必选。数据源的唯一连接标识,该连接标识由 SQLOpen 函数返回,并由SQLExecQuery 函数用于查询数据。
如果 ConnectionNum 无效,SQLExecQuery 将返回第 2015 号错误。
DestinationRef
可选。指定结果放置位置的 Range 对象。本函数将覆盖这些单元格的值而不给出任何确认提示。
如果 DestinationRef 指定单个单元格, SQLRetrieve 将所有搁置的结果返回到该单元格及其右方和下方的单元格中。
如果省略 DestinationRef,先前用 SQLBind 函数调用所建立的绑定将用于返回结果。如果当前连接并无绑定, SQLRetrieve 返回第 2023 号错误。
如果结果中的某特定列未绑定,又省略了 DestinationRef,该列将被忽略。
MaxColumns
可选。返回到工作表中的最大列数,从 DestinationRef 开始计算。
如果 MaxColumns 指定的列数大于结果中可用的列数, SQLRetrieve 返回可用数据列的同时,将其余列的内容清除。
如果 MaxColumns 指定的列数小于结果中可用的列数, SQLRetrieve 将忽略最右边的多余的列。
数据源返回的列的顺序决定了结果中列的位置。
如果省略 MaxColumns,将返回结果中所有的列。
MaxRows
可选。返回到工作表中的最大行数,从 DestinationRef 开始计算。
如果 MaxRows 指定的行数大于结果中可用的行数, SQLRetrieve 返回可用数据行的同时,将其余行的内容清除。
如果 MaxRows 指定的行数小于结果中可用的行数, SQLRetrieve 将数据置于指定行中,但不丢弃其余的行。可再次调用 SQLRetrieve 函数,并将 FetchFirstLogical 参数置为 False,以获取剩余的行。
如果省略 MaxRows,将返回结果中所有的行。
ColNamesLogical
可选。若指定为 True,则将列名作为结果的第一行返回。若指定为 False或省略本参数,则不返回列名。
RowNumsLogical
可选。仅当指定了 DestinationRef 参数时,本参数才有用。若指定为 True,则使结果集合中的第一列包含行号。若指定为 False 或省略本参数,则不返回行号。也可用 SQLBind 函数绑定第 0(零)列以获取行号。
NamedRngLogical
可选。若指定为 True,则结果中的每一列都将声明为工作表中的命名区域。这些区域的名称就是结果中列的名称。这些命名区域仅包括 SQLRetrieve函数所返回的行。默认值为 False。
FetchFirstLogical
可选。允许从结果集合的开始处获取数据。如果 FetchFirstLogical 为False,那么可以连续调用 SQLRetrieve 函数以获取后续的行,直至取完结果中所有的行。如果结果集合中的行已被取完, SQLRequest 返回 0(零)。
如果要从结果集合的开始处检索数据,可将 FetchFirstLogical 设置为True;若要检索结果集合中其余的行,可在后续调用中将 FetchFirstLogical设置为 False。默认值为 False。
返回值
SQLRetrieve 返回结果集合中的行数。
如果 SQLRetrieve 无法检索指定的数据源中的结果,或没有搁置的结果以供检索,将返回第 2042 号错误。如果未发现数据, SQLRetrieve 返回 0(零)。
说明
调用 SQLRetrieve 之前,必须执行下列步骤:
1. 调用 SQLOpen 函数以建立与数据源的连接。
2. 用 SQLOpen 函数所返回的连接标识,调用 SQLExecQuery 函数向数据源发送查询。
另见
SQLBind 函数, SQLClose 函数, SQLError 函数, SQLExecQuery 函数, SQLGetSchema 函数, SQLOpen 函数, SQLRequest 函数, SQLRetrieveToFile 函数
示例
本示例在“Northwind”数据库上执行查询。显示在工作表“Sheet1”上的查询结果是当前已订货的产品列表。
databaseName = "Northwind"
queryString = _
"SELECT * FROM product.dbf WHERE (product.ON_ORDER<>0)
"chan = SQLOpen("DSN=" & databaseName)
SQLExecQuery chan, queryString
Set output = Worksheets("Sheet1").Range("A1")
SQLRetrieve chan, output, , , True
SQLClose chan
描述
请勿在“Xlodbc.xla”加载宏中使用 SQLRetrieveToFile 及其它 ODBC 函数;请用ActiveX数据对象(ADO)库中的对象、方法和属性代之。
SQLRetrieveToFile 检索先前执行的查询所得的所有结果,并将这些结果存储于文件中。
调用本函数之前,必须先用 SQLOpen 函数建立连接,再用 SQLExecQuery函数执行查询,从而准备好结果。
本函数包含在“Xlodbc.xla”加载宏中。使用本函数之前,必须使用“工具”菜单中的“引用”命令建立对该加载宏的引用。
句法
SQLRetrieveToFile(ConnectionNum,Destination,ColNamesLogical,
ColumnDelimiter)
ConnectionNum
必选。数据源的唯一连接标识,该连接标识由 SQLOpen 函数返回,并由SQLExecQuery 函数用于查询数据。
如果 ConnectionNum 无效,SQLExecQuery 将返回第 2015 号错误。
Destination
必选。指定用于放置结果的文件的路径和名称的字符串。如果该文件存在,其内容将为查询结果所取代。如果该文件不存在, SQLRetrieveToFile 创建和打开该文件,并将结果存储于其中。
文件中的数据格式与 Microsoft Excel .csv(逗号分隔值)文件格式兼容。
各列之间用 ColumnDelimiter 所指定的字符分隔,各行之间用回车符分隔。
如果无法打开由 Destination 指定的文件, SQLRetrieveToFile 返回第2042 号错误。
ColNamesLogical
可选。若指定为 True,则将列名作为结果的第一行返回。若指定为 False 或省略本参数,则不返回列名。
ColumnDelimiter
可选。字符串,指定用于分隔每行中各元素的字符。例如,用“,”指定逗号分隔符,或用“;”指定分号分隔符。如果省略 ColumnDelimiter,则使用列表分隔符。
返回值
如果成功, SQLRetrieveToFile 返回查询结果,将其写入文件,然后返回写入文件中的行数。
如果 SQLRetrieveToFile 无法检索结果,将返回第 2042 号错误且不写文件。
如果指定的连接中没有搁置的结果,SQLRetrieveToFile 返回第 2042 号错误。
说明
调用 SQLRetrieveToFile 之前,必须执行下列步骤:
1. 调用 SQLOpen 函数以建立与数据源的连接。
2 用 SQLOpen 函数所返回的连接标识,调用 SQLExecQuery 函数向数据源发送查询。
另见
SQLBind 函数, SQLClose 函数, SQLError 函数, SQLExecQuery 函数, SQLGetSchema 函数, SQLOpen 函数, SQLRequest 函数, SQLRetrieve 函数
示例
本示例在“Northwind”数据库上执行查询。查询结果是当前已订货的产品列表,该结果以分隔文本的格式写入当前文件夹中”Output.txt”文件中。
databaseName = "Northwind"queryString = _
"SELECT * FROM product.dbf WHERE (product.ON_ORDER<>0)"
chan = SQLOpen("DSN=" & databaseName)
SQLExecQuery chan, queryString
SQLRetrieveToFile chan, "OUTPUT.TXT", True
SQLClose chan
适用于
ODBCError 对象,OLEDBError 对象
描述
返回 SQL 状态错误。String 类型,只读。
说明
有关特定错误的解释,另见 SQL 文档。
示例
本示例对第一张查询表进行刷新并显示所产生的 ODBC 错误。
With Worksheets(1).QueryTables(1)
.Refresh
Set errs = Application.ODBCErrors
If errs.Count > 0 Then
Set r = .Destination.Cells(1)
r.Value = "The following errors occurred:"
c = 0
For Each er In errs
c = c + 1
r.offset(c, 0).value = er.ErrorString
r.offset(c, 1).value = er.SqlState
Next
Else
MsgBox "Query complete: all records returned."
End If
End With
适用于
OLEDBError 对象
描述
返回一个数值用以指定在最近一次查询OLE DB得出的错误级。只读。Long类型。
示例
本例显示最近一次查询OLE DB所返回的错误数、错误级以及其它错误信息。
Set objEr = Application.OLEDBErrors(1)
MsgBox "The following error occurred:" & _
objEr.Number & ", " & objEr.Native & ", " & _
objEr.Stage & ", " & _
objEr.ErrorString & " : " & objEr.SqlState
适用于
Application 对象
描述
返回或者设置标准字体的名称。String 类型,可读写。
说明
如果使用本属性更改标准字体,必须重新启动 Microsoft Excel 后,所作的更改才起作用。
另见
示例
本示例检查操作系统的类型,如果为 Macintosh 则将标准字体设为Geneva,如果为 Windows 则将标准字体设为 Arial。
If Application.OperatingSystem Like "*Macintosh*" Then
Application.StandardFont = "Geneva"
Else
Application.StandardFont = "Arial"
End If
适用于
Application 对象
描述
以磅为单位返回或者设置标准字体大小。Long 类型,可读写。
说明
如果使用本属性更改标准字体大小,必须重新启动 Microsoft Excel 后,所作的更改才起作用。
另见
示例
本示例将标准字体大小设为 12 磅。
Application.StandardFontSize = 12
适用于
Worksheet 对象
描述
返回指定工作表所有列的标准高度(默认值),以磅为单位。Double 类型,
只读。
另见
Height 属性, RowHeight 属性, StandardWidth 属性
示例
本示例将以标准行高设置 Sheet1 第一行的行高。
Worksheets("Sheet1").Rows(1).RowHeight = _
Worksheets("Sheet1").StandardHeight
适用于
Wordsheet 对象
描述
返回或者设置指定工作表所有列的标准列宽(默认值)。Double 类型,可读写。
说明
一单位列宽相当于“常规”样式中的一个字符的宽度。对于部分字体,则使用字符 0(零)的宽度。
另见
ColumnWidth 属性, StandardHeight 属性, Width 属性
示例
本示例将以标准列宽设置 Sheet1 中首列的列宽。
Worksheets("Sheet1").Columns(1).ColumnWidth = _
Worksheets("Sheet1").StandardWidth
适用于
Phonetics 集合对象
描述
返回一个位置,代表指定单元格中拼音文本字符串的第一个字符。只读。Long类型。
示例
本例返回活动单元格中第二个拼音文本字符串的起始位置。
ActiveCell.FormulaR1C1 = "东京都涩谷区代ケ木"
ActiveCell.Phonetics.Add Start:=1, Length:=3, Text:="トぅ≠ョうト"
ActiveCell.Phonetics.Add Start:=4, Length:=3, Text:="ヾフャク"
MsgBox ActiveCell.Phonetics(2).Start
适用于
Application 对象
描述
返回启动文件夹的完整路径,不包括末尾分隔符。String 类型,只读。
示例
本示例显示 Microsoft Excel 启动文件夹的完整路径。
MsgBox Application.StartupPath
适用于
RoutingSlip 对象
描述
指出传递名单的状态。可为下列 XlRoutingSlipStatus 常量之一:
xlNotYetRouted, xlRoutingInProgress 或 xlRotuingComplete。Long 类型,
只读。
示例
如果工作簿“Book1.xls”的传递过程已完成,本示例将重置传递名单。
With Workbooks("BOOK1.XLS").RoutingSlip
If .Status = xlRoutingComplete Then
.Reset
Else
MsgBox "Cannot reset routing; not yet complete
."End If
End With
适用于
Application 对象
描述
返回或者设置状态栏的文字。String 类型,可读写。
说明
果 Microsoft Excel 控制状态栏则本属性返回 False。要恢复默认的状态栏文字,可将本属性设为 False;在状态栏处于隐藏状态时也可起作用。
另见
示例
本示例在打开 Large.xls 工作簿之前将状态栏文字设为“Please be
patient...”,然后将状态栏恢复为默认文字。
oldStatusBar = Application.DisplayStatusBar
Application.DisplayStatusBar = True
Application.StatusBar = "Please be patient..."
Workbooks.Open filename:="LARGE.XLS"
Application.StatusBar = False
Application.DisplayStatusBar = oldStatusBar
适用于
Font 对象
描述
如果字体中间加了一条横线则为 True。Boolean 类型,可读写。
示例
本示例将 Sheet1 中活动单元格的字体设置为加横线。
Worksheets("Sheet1").ActivateActiveCell.Font.Strikethrough = True
描述
代表区域的样式说明。Style 对象的属性包含样式的所有特性(字体、数字格式、对齐方式等)。有若干内置样式,包括“常规”、“货币”和“百分比”。
当同时对若干单元格修改单元格格式属性时,使用 Style 对象是迅速而高效的方法。
对于 Workbook 对象, Style 对象是 Styles 集合的成员。Styles 集合包含定义在工作簿上的所有样式。
使用Style 对象
可用 Style 属性返回用于 Range 对象的 Style 对象。下例对工作表“Sheet1”中的单元格区域“A1:A10”应用“百分比”样式。
Worksheets("sheet1").Range("a1:a10").Style.Name = "percent"
可修改应用于单元格的样式的属性,以改变单元格的外观。但要记住,修改样式的属性将影响所有以该样式格式化的单元格。
可用 Styles(index) (其中 index 为样式编号或名称)从工作簿 Styles 集合中返回单个 Style 对象。下例设置活动工作簿中“常规”样式的 Bold 属性,以修改该样式。
ActiveWorkbook.Styles("Normal").Font.Bold = True
样式按照名称的字母顺序排序。样式编号表明指定样式在样式名排序表中的位置。Styles(1) 为排序表中的第一个样式,而 Styles(Styles.Count) 为最后一个。
关于创建和修改样式的详细内容,另见 Styles 对象。
属性
AddIndent 属性,Application 属性,Borders 属性,BuiltIn 属性,Creator属性,Font 属性,FormulaHidden 属性,HorizontalAlignment 属性,IncludeAlignment 属性,IncludeBorder 属性,IncludeFont 属性,IncludeNumber 属性,IncludePatterns 属性,IncludeProtection 属性,IndentLevel 属性,Interior 属性,Locked 属性,MergeCells 属性,Name属性,NameLocal 属性,NumberFormat 属性,NumberFormatLocal 属性,Orientation 属性,Parent 属性,ReadingOrder 属性,ShrinkToFit 属性,Value 属性,VerticalAlignment 属性,WrapText 属性
方法
Delete 方法
适用于
LineFormat 对象,Range 对象
描述
返回 Style 对象,该对象代表指定单元格区域的样式。只读。
示例
本示例对工作表“Sheet1”中的单元格“A1”应用“常规”样式。
Worksheets("Sheet1").Range("A1").Style.Name = "Normal"如果工作表“Sheet1”中的单元格“B4”当前应用的是“常规”样式,本示例将对其应用“百分比”样式。
If Worksheets("Sheet1").Range("B4").Style.Name = "Normal" Then
Worksheets("Sheet1").Range("B4").Style.Name = "Percent"
End If
描述
指定工作簿或活动工作簿上所有 Style 对象的集合。每个 Style 对象代表某一区域的样式说明。Style 对象的属性包含样式的所有特性(字体、数字格式、对齐方式等)。有若干内置样式,包括“常规”、“货币”和“百分比”,这些样式都列示在“格式”菜单的“样式”对话框中的“样式名”列表框中。
使用Styles 集合对象
可用 Styles 属性返回 Styles 集合。下例创建活动工作簿中第一张工作表上的样式名的列表。
For i = 1 To ActiveWorkbook.Styles.Count
Worksheets(1).Cells(i, 1) = ActiveWorkbook.Styles(i).Name
Next
可用 Add 方法创建新样式并将其添加到集合中。下例以“常规”样式为基础创建新样式,修改边框和字体,然后将该样式应用于单元格区域
“A25:A30”。
With ActiveWorkbook.Styles.Add(name:="bookman top border")
.Borders(xlTop).LineStyle = xlDouble
.Font.Bold = True.
Font.Name = "bookman"
End With
Worksheets(1).Range("a25:a30").Style = "bookman top border"
可用 Styles(index) (其中 index 为样式编号或名称)从工作簿 Styles 集合中返回单个 Style 对象。下例设置活动工作簿中“常规”样式的 Bold 属性,以修改该样式。
ActiveWorkbook.Styles("Normal").Font.Bold = True
属性
Application属性,Count属性,Creator属性,Item属性(Styles集合),Parent
属性
方法
Add方法(Style集合),Merge集合
适用于
Workbook对象
描述
返回代表指定工作簿中所有样式的样式集合。只读。
示例
本示例从活动工作簿中删除用户指定样式“Stock Quote Style”
Active workbook.Style("Stock Quote Style").Delete
适用于
Hyperlink 对象
描述
返回或者设置文档中关联于指定超级链接的位置。String 类型,可读写。
示例
本示例将一个区域位置添加到第一个形状的超级链接中。
Worksheets(1).Shapes(1).Hyperlink.SubAddress = "A1:B10"
适用于
RoutingSlip 对象
描述
返回或设置邮件或传递名单的主题。String 类型,可读写。
说明
RoutingSlip 对象的主题的句法类似邮件信息的主题,邮件信息的主题用于传递工作簿。
另见
Author 属性, Comments 属性, Delivery 属性, Message 属性, Recipients 属性, ReturnWhenDone 属性
示例
本示例设置打开工作簿中传递名单的主题。本示例只能在已安装了Microsoft Exchange 的情况下才能运行。
With ThisWorkbook
.HasRoutingSlip=True
with .RoutingSlip
.Delivery = xlOneAfterAnother
.Recipients = Array("Adam Bendel", "Jean Selva", "Bernard Gabor")
.Subject = "Here is the workbook"
.Message = "Here is the workbook. What do you think?"
.ReturnWhenDone = True
End With
.Route
End With
适用于
Font 对象
描述
如果字体格式设为加下标则为 True,默认值为 False。Variant 类型,可读写。
另见
示例
本示例将 A1 单元格的第二个字符设为下标字符。
Worksheets("Sheet1").Range("A1").Characters(2, 1).Font.Subscript = True
适用于
Range 对象,WorksheetFunction 对象
描述
创建指定区域或当前区(当该区域为单个单元格时)的分类汇总。
句法
expression.Subtotal(GroupBy,Function,TotalList,Replace,PageBreaks,SummaryBelowData)
expression
必选。该表达式返回 Range 对象。
GroupBy
Long 类型,必选。以从 1 开始的整数索引号指定用以分组的字段。详细内容另见示例。
Function
Long 类型,必选。分类汇总函数。可为下列 XlConsolidationFunction 常量之一:
xlAverage, xlCount, xlCountNums, xlMax, xlMin, xlProduct,xlStDev, xlStDevP, xlSum, xlVar 或 xlVarP。
TotalList
Variant 类型,必选。从 1 开始的字段索引号数组,指明将被分类汇总的字段。详细内容另见示例。
Replac
Variant 类型,可选。若指定为 True,则替换现有分类汇总。默认值为False。
PageBreaks
Variant 类型,可选。若指定为 True,则在每一组之后添加分页符。默认值为 False。
SummaryBelowData
Variant 类型,可选。可为下列 xlSummaryRow 常量之一:
xlSummaryAbove 或 xlSummaryBelow。默认值为 xlSummaryBelow。
另见
示例
本示例创建工作表“Sheet1”中选定区域的分类汇总。该分类汇总是以第一个字段进行分组的求和,汇总对象为第二和第三个字段。
Worksheets("Sheet1").Activate
Selection.Subtotal groupBy:=1, function:=xlSum, _
totalList:=Array(2, 3)
适用于
PivotTable 对象
描述
如果在行或列的分类汇总、块汇总和总计中包括数据透视表中的隐藏页字段项目,本属性为 True。默认值为 False。Boolean 类型,可读写。
说明
对于OLAP数据源,此值总为True。
示例
本示例使第一张工作表中的“数据透视表”在分类汇总时不包括隐藏的页字段项目。
Worksheets(1).PivotTables("Pivot1").SubtotalHiddenPageItems = True
适用于
PivotField 对象
描述
返回或设置显示在指定数据透视表报表的分类汇总列或行标题中的文本串标志。默认值为“Subtotal敗?啥列础tring 类型。
示例
本示例将活动工作表上第二个数据透视表报表的状态字段中的分类汇总标志设置为“Regional Subtotal敚ㄈ〈系摹癝ubtotal敚
ctiveSheet.PivotTables("PivotTable2") _
.PivotFields("state").SubtotalName = "Regional Subtotal"
适用于
PivotField 对象
描述
返回或设置与指定字段一同显示的分类汇总。仅对非数据字段有效。可读写。Variant 类型。
句法
expression.Subtotals(Index)
expression
必选。一个返回 PivotField 对象的表达式。
Index
可选。Variant 类型。表示下表所显示的分类汇总索引。如果忽略此参数,
则 Subtotals 方法将返回一个数组,其中包含对应每个分类汇总的布尔值。
| 索引 | 含义 |
| 1 | Automatic |
| 2 | Sum |
| 3 | Count |
| 4 | Average |
| 5 | Max |
| 6 | Min |
| 7 | Product |
| 8 | Count Nums |
| 9 | StdDev |
| 10 | StdDevp |
| 11 | Var |
| 12 | Varp |
如果索引为 True,则该字段显示分类汇总。如果索引 1 (Automatic) 为True,则其它所有值将设置为 False。
说明
对于 OLAP 数据源,Index 只能返回或设置为 1 (Automatic)。返回的数组中,第一个数组元素的值可以为 True 或 False,而所有其它元素则其值为False。数组中所有元素都为 False,则表明没有分类汇总。
示例
本示例将包含活动单元格的字段设置为显示求和分类汇总。
Worksheets("Sheet1").Activate
ActiveCell.PivotField.Subtotals(2) = True
适用于
Range 对象
描述
如果指定区域为分级显示的摘要行或摘要列,本属性为 True。该区域应为一行或一列。Variant 类型,只读。
示例
如果工作表“Sheet1”上第四行为分级显示的摘要行,本示例将其字体设置为加粗和斜体。
With Worksheets("Sheet1").Rows(4)
If .Summary = True Then.
Font.Bold = True
.Font.Italic = True
End If
End With
适用于
Outline 对象
描述
返回或者设置分级显示中汇总列的位置,如下表所示。Long 类型,可读写。
| 取值 | 意义 |
| xlLeft | 分级显示中的汇总列位于明细列的左边。 |
| XlRigh | 分级显示中的汇总列位于明细列的右边。 |
示例
本示例创建一个使用自动样式的分级显示,汇总行位于明细行上面,汇总列位于明细列的右边。
Worksheets("Sheet1").Activate
Selection.AutoOutline
With ActiveSheet.Outline
.SummaryRow = xlAbove
.SummaryColumn = xlRight
.AutomaticStyles = True
End With
适用于
Outline 对象
描述
返回或者设置分级显示中汇总行的位置,如下表所示。Long 类型,可读写。
| 取值 | 意义 |
| xlAbove | 分级显示中的汇总行位于明细行的上面。 |
| XlBelow | 分级显示中的汇总行位于明细行的下面。 |
说明
要进行 Microsoft Word 风格的分级显示,可将 SummaryRow 设为xlAbove,使分类标题位于明细数据上面。要进行会计风格的分级显示,可将 SummaryRow 设为 xlBelow,使分类标题位于明细数据下面。
示例
本示例创建一个使用自动样式的分级显示,汇总行位于明细行上面,汇总列位于明细列的右边。
Worksheets("Sheet1").Activate
Selection.AutoOutline
With ActiveSheet.Outline
.SummaryRow = xlAbove
.SummaryColumn = xlRight
.AutomaticStyles = True
End With
适用于
Font 对象
描述
如果字体格式设为上标字符则为 True;默认值为 False。Variant 类型,
可读写。
另见
示例
本示例将 A1 单元格的最后一个字符设为上标字符。
n = Worksheets("Sheet1").Range("A1").Characters.Count
Worksheets("Sheet1").Range("A1").Characters(n, 1).Font.Superscript = _True
适用于
chart 对象
描述
返回一个 ChartGroup 对象,该对象代表三维图表中的曲面图组。只读。
示例
本示例设置“Chart1”中的三维曲面图组,使其中的每一数据标志都使用不同的颜色。本示例应在三维图表上运行。
Charts("Chart1").SurfaceGroup.VaryByCategories = True