细品RibbonX(37):screentip属性和supertip属性详解

1 颗星2 颗星3 颗星4 颗星5 颗星 (目前还没有人投票)
Loading ... Loading ...

当用户悬浮鼠标在控件上时,screentip属性和supertip属性能够为控件提供有帮助的文本,与用户共享信息,指出该控件的目的。使用screentip告诉用户控件是什么,使用supertip提供稍微更长一点信息,解释该控件做什么。下图为一个示例。
screentipandsupertipSample1 
screentip部分是框顶部给出键盘快捷键的粗线,而supertip是其剩下的信息。
然而,Microsoft不会让我们在supertip中添加自已的图像
创建screentip属性和supertip属性
(1)创建一个新的.xlsx文件,并将其保存为CustomKeytip.xlsx。
(2)关闭该文件并在CustomUI Editor中打开。
(3)输入下列XML代码:

<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
<ribbon startFromScratch="false">
    <tabs>
        <tab id="rxtabDemo"
		label="Demo"
		keytip="cD"
		insertBeforeMso="TabHome">
		<group id="rxgrpDemo"
			label="Demo Group">
                  <button id="rxbtnDemo"
                    label="Testing"
                    screentip="This is very accurate information!"
                    supertip="It tells you nothing... which is exactly what this button does!"
                    imageMso="HappyFace"/>
		</group>
	</tab>
    </tabs>
</ribbon>
</customUI>

(4)保存后关闭CustomUI Editor。
(5)在Excel中重新打开该文件,将鼠标悬浮在自定义按钮上,结果如下图所示。
screentipandsupertipSample2
当在XML中使用跨多行的文本时,tab字符能够用于排列XML代码而不会影响用户看到的文字。然而,输入额外的硬回车或空格将在属性显示的文本中插入空格。
如果希望在输出的文本中强迫换行,则需要在XML中添加 字符。这五个字符强迫在输出中硬回车。

相关文章

VBA中名称的使用

1 颗星2 颗星3 颗星4 颗星5 颗星 (1 人投票, 平均: 4.00 out of 5)
Loading ... Loading ...

我们知道,通过在工作表中定义名称,可以更好地管理工作表数据,方便编写公式和设置表格。同样,在VBA中也可以创建和使用名称,也能利用名称方便地处理工作表中的数据。
在VBA中名称的基本操作
1、创建名称
① 可以使用下面的代码在当前工作簿中创建名称:

ActiveWorkbook.Names.Add Name:="MyName", RefersToR1C1:="=Sheet1!R2C2:R6C4"

或者

ActiveWorkbook.Names.Add Name:="MyName", RefersTo:="=Sheet1!$B$2:$D$6"

代码将当前工作簿中工作表Sheet1的单元格区域B2:D6命名为MyName,该名称为全局名称。
注意,在名称中不能出现空格和单元格引用,并且如果对命名区域使用A1样式的引用,那么最好使用绝对引用,否则所命名的区域将会不确定。
在名称前加上工作表名,将创建局部名称,例如:

ActiveWorkbook.Names.Add Name:="Sheet1!MyName1", RefersTo:="=Sheet1!$B$2:$D$6"

上面的代码在工作表Sheet1中将单元格区域B2:D6命名为MyName1,该名称为局部名称。
也可以通过引用指定的工作表创建局部名称,例如:

Worksheets("sheet2").Names.Add Name:="MyName2", RefersTo:="=Sheet2!$A$1:$B$3"

上面的代码在工作表Sheet2中创建一个局部名称MyName2,代表Sheet2中的单元格区域A1:B3。
② 一种简单的命名方法。例如:

Worksheets("Sheet1").Range("B8:C10").Name = "MyName3"

上面的代码将工作表Sheet1中的单元格区域B8:C10命名为MyName3,该名称为全局名称。

Worksheets("Sheet2").Range("H15:G16").Name = "Sheet2!MyName4"

上面的代码将工作表Sheet2中的单元格区域H15:G16命名为MyName4,该名称为局部名称。
注意,这种方法只能应用于命名单元格区域,不能够用来命名公式、数字等。
③ 在当前工作表中命名局部区域,该区域为其它工作表中的单元格区域。

Worksheets("Sheet1").Range("E6:F8").Name = "Sheet2!MyName5"

或者:

Worksheets("sheet2").Names.Add Name:="MyName5", RefersTo:="=Sheet1!$E$6:$F$8"

上面的代码在工作表Sheet2中命名工作表Sheet1中单元格区域E6:F8为MyName5,该名称为Sheet2中的局部名称。
④ 命名数字。例如:

Names.Add Name:="NameNumber", RefersTo:=666

将数字666命名为NameNumber。
⑤ 命名字符串。例如:

Names.Add Name:="NameString", RefersTo:="TV"

将字符串TV命名为NameString。
⑥ 命名数组。例如:

Dim MyArray(10)
Dim i As Integer
For i = 1 To 10
   MyArray(i) = i
Next i
Names.Add Name:="NameArray", RefersTo:=MyArray

上述代码先对数组赋值,然后指定名称。
⑦ 命名公式。例如:

Names.Add Name:="NameFormlas", RefersTo:="=OFFSET(Sheet1!$A$1,0,0,COUNTA(Sheet1!$A:$A),1)"

上面的代码命名了一个公式,可以用来创建动态表格或引用动态的区域。
使用上面的方法命名数字、字符串、数组或公式,在名称中存储经常要使用的值,比将该值存放在单元格中更有优势,它可以避免该值被易外修改并减少了对象的引用。
2、重命名已有的名称

Worksheets("Sheet2").Names("MyName5").Name = "MyName6"

上面的代码将工作表Sheet2中的局部名称MyName5改名为MyName6。但这种方法只能在单元格或单元格区域中进行重命名使用,而不能重命名代表公式、数组和字符串的名称。
3、改变所选区域所命名的名称的引用区域

Worksheets("Sheet1").Names.Add Selection.Name.Name,Sheet1.Range("B3:C4")

上面的代码将原来所选区域的名称的引用区域改为单元格区域B3:C4,即该名称所代表的区域已变为B3:C4,原来命名区域名称被取消。
4、提取命名区域
使用Evaluate方法,例如:

Evaluate("MyName").Interior.ColorIndex = 3

将工作表中名称MyName所代表的单元格区域的背景设置为红色。
5、隐藏名称

Names.Add Name:="HideName", RefersTo:="=$A$1:$C$3", Visible:=False

将隐藏所创建的名称。注意,如果以后创建的名称与所隐藏的名称相同,则被隐藏的名称将被覆盖。
6、删除名称

Names("MyName3").Delete

上面的代码删除当前工作簿中的名称MyName3。
注意,当前工作簿中重命名已有名称和删除名称时,要注意所要操作的名称是全局名称还是局部名称。如果为局部名称,则必须在代码中加上该名称所在工作表的引用。
命名名称注意事项
名称的最大长度为255个字符。

  • 名称可以字母、空格或下划线开头。
  • 名称中不能包含空格、连字线等字符。
  • 避免命名与单元格引用相同的名称,如A1、G11等。
  • 避免在名称中使用Excel的保留字,如:Criteria、Database、Extract、Print_Area、Print_Titles等。

一些示例
[示例1] 检查当前工作簿中某名称是否存在

Sub test()
  Dim str As Boolean
  str = NameExists("myName")
  If str = True Then
    MsgBox "该名称存在于当前工作簿中."
  Else
    MsgBox "该名称不存在."
  End If
End Sub
Function NameExists(FindName As String) As Boolean
  Dim rng As Range
  Dim myName As String
  On Error Resume Next
  myName = ActiveWorkbook.Names(FindName).Name
  If Err.Number = 0 Then NameExists = True
End Function

或者:

Function NameExists(TheName As String) As Boolean
  On Error Resume Next
  NameExists = Len(ThisWorkbook.Names(TheName).Name) <> 0
End Function

[示例2]使工作簿中的所有名称可见

Sub UnHideName()
  Dim Nm As Name
  For Each Nm In Names
    Nm.Visible = True
  Next
End Sub

[示例3]列出当前工作簿中所有名称的相关信息

Sub ShowNames()
  Dim N As Integer
  For N = 1 To ActiveWorkbook.Names.Count
    On Error Resume Next
    Cells(N, 1) = "'" & ActiveWorkbook.Names(N).Name
    Cells(N, 2) = "'" & ActiveWorkbook.Names(N).RefersToRange.Address
    Cells(N, 3) = "'" & ActiveWorkbook.Names(N).ShortcutKey
    Cells(N, 4) = "'" & ActiveWorkbook.Names(N).Visible
  Next
End Sub

[示例4]显示当前单元格所命名的名称

Sub ShowNames_activecell()
  On Error Resume Next
  MsgBox ActiveCell.Name.Name
  Select Case Err.Number
    Case 0
    Case 1004
      MsgBox "单元格" & ActiveCell.Address(4) & “没有命名。”
    Case Else
      MsgBox Err.Number & " -- " & Err.Description
  End Select
End Sub

示例说明:如果要获取指定单元格所定义的名称,可以使用Name属性两次。
[示例5]删除当前工作簿中含有“name”字符的名称

Sub DeleteName()
  Dim Nm As Name
  For Each Nm In ActiveWorkbook.Names
    If Nm.Name Like "*name*" Then
      Nm.Delete
    End If
  Next Nm
End Sub

[示例6] 判断某单元格或单元格区域是否与命名区域部分重叠

Function NameOfParentRange(Rng As Range) As String
  Dim Nm As Name
  For Each Nm In ThisWorkbook.Names
    If Rng.Parent.Name = Nm.RefersToRange.Parent.Name Then
      If Not Application.Intersect(Rng, Nm.RefersToRange) Is Nothing Then
        NameOfParentRange = Nm.Name
        Exit Function
      End If
    End If
  Next Nm
  NameOfParentRange = ""
End Function

示例说明:如果Rng所代表的单元格或单元格区域与命名区域相交叉,则返回命名区域的名称,否则返回空。
名称的高级操作
(下面的内容整理自Chip Pearson的文章)
[增大名称框的尺寸]
在Excel 2003及以前工作表的名称框中(如图1所示),大约只能显示16个字符,当超过它所能容纳的字符时,后面的字符将会被截取,因而不能看到完整的名称,这对前面的字符相同而最后几个字符不相同的名称来说,很不方便,但是在Excel中没有改变名称框尺寸的设置(Excel 2007改进了这一步,可以通过拖拉增加或减小名称框的尺寸),这个问题可以通过调用Windows API来解决。下面的代码通过调用API来增加下拉框的宽度。
在VBE编辑器中插入一个标准模块,并输入以下的代码:

Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
    (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" _
    (ByVal hWnd1 As Long, ByVal hWnd2 As Long, _
    ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Public Declare Function SendMessage Lib "user32" Alias "SendMessageA" _
    (ByVal hwnd As Long, ByVal wMsg As Long, _
    ByVal wParam As Long, lParam As Any) As Long
 
Sub WidenNameBoxDrop2()
    Dim Res As Long
    Const CB_SETDROPPEDWIDTH = &H160
    Const cWidth = 400 '<<<<<<<<<<<<<<<<<<<<<<
    Res = SendMessage( _
            FindWindowEx( _
                FindWindowEx( _
                    FindWindow("XLMAIN", Application.Caption) _
                , 0, "EXCEL;", vbNullString) _
            , 0, "combobox", vbNullString), _
          CB_SETDROPPEDWIDTH, cWidth, 0)
End Sub

示例说明:上述代码运行前后的结果如图1和图2所示。在上面的代码中,可以通过改变常量cWidth(<<<所示的代码行)的值来定义下拉框的宽度。
NameInVBA1 图1:原名称框
NameInVBA2 图2:修改后的名称框
[为名称框定义快捷键]
Excel提供的快捷键中没有名称框的快捷键。但是,您能使用VBA代码设置快捷键,以方便能快速定位到名称框。
在VBE编辑器中,插入一个标准模块,并输入以下代码:

Public Declare Function SetFocus Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function FindWindow Lib "user32" Alias "FindWindowA" _
    (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Public Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" _
    (ByVal hWnd1 As Long, ByVal hWnd2 As Long, _
     ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
 
Sub SetFocusNameBox()
    Dim Res As Long
    Res = SetFocus( _
        FindWindowEx( _
            FindWindowEx( _
                FindWindow("XLMAIN", Application.Caption) _
                    , 0, "EXCEL;", vbNullString) _
                    , 0, "combobox", vbNullString))
End Sub

在Excel中,选择菜单“工具——宏——宏”命令,调出“宏”对话框,为刚创建的SetFocusNameBox代码指定快捷键,如Ctrl+Shift+N。那么,以后在该工作簿中,按下Ctrl+Shift+N组合键,即可定位到名称对话框。

相关文章

细品RibbonX(36):keytip属性详解

1 颗星2 颗星3 颗星4 颗星5 颗星 (1 人投票, 平均: 5.00 out of 5)
Loading ... Loading ...

keytip能够使用户通过键盘导航功能区。这是不喜欢使用鼠标的用户非常喜欢的功能,也有助于使用户界面更易访问。

按Alt键将进入键击导航模式,显示可用的键击名,能使用户导航选项卡、组和控件层次。简单地按下代表某命令的字符,将激活该命令。

keytip属性接受至多三个字符。由于其目的是使UI通过键盘比使用鼠标访问更有效,因此应该使其尽可能简短。并且,键击名与其要激活的控件名越不相关,用户要记住也就越难,因此就越不会使用。

如下图所示,按下Alt键,进入键击导航模式。

keytipSample1

如果再按下代表开始选项卡的H键,将呈现该选项卡每个命令的快捷键,如下图所示。

keytipSample2 

然后,按下相应的字母键或数字键,就会执行相应的命令。

虽然记住所有的命令是不可能的,但是Microsoft已经为我们提供了一种容易的显示键击的方式。

创建keytip

要创建自已的keytip属性,只需在XML结构的父元素中添加适当的keytip=”abc”标签。

(1)创建一个新的.xlsx文件,并将其保存为Excel keytip Example.xlsx。

(2)关闭该文件并在CustomUI Editor中打开。

(3)输入下列XML代码:

<customUI xmlns=”http://schemas.microsoft.com/office/2006/01/customui”>

    <ribbon startFromScratch=”false”>

        <tabs>

            <tab id=”rxtabDemo”

               label=”Demo”

               keytip=”cD”

               insertBeforeMso=”TabHome”>

               <group id=”rxgrpDemo”

                  label=”Demo Group”>

                  <button id=”rxbtnDemo”

                  label=”Testing”

                  keytip=”B”

                  imageMso=”HappyFace”/>

               </group>

            </tab>

        </tabs>

    </ribbon>

</customUI>

上述代码简单地创建了一个包含笑脸按钮的新组。

(4)保存后关闭CustomUI Editor。

(5)在Excel中重新打开该文件,按下Alt键之后,结果如下图所示。

keytipSample3

相关文章

修改数据透视表

1 颗星2 颗星3 颗星4 颗星5 颗星 (目前还没有人投票)
Loading ... Loading ...

下面,我们来修改在《创建数据透视表》中创建的保险数据透视表。你将会看到当源表中的数据改变时会发生什么,学习如何查看不同类型的数值汇总,还将使用内置的格式功能来修改数据透视表的外观。最后,如果不再需要数据透视表,可以删除它。
改变数据透视表
有时,你会创建数据透视表并且让它保持相同的布局且无须修改字段。每周或每月,你将更新数据,基于数据透视表汇总来查看结果或者分发报表。然而,有一些数据透视表需要经常变化,因为它们用于创建特别的报表。这里,通过使用不同的字段汇总数据,从而使用相同的数据和透视表来创建更多特别的报表。
1、清除数据透视表
在Midwest地区有洪水威胁,现在要求你报告每个地区有洪水分布和没有洪水分布保单的保险价值。你将清除数据透视表的内容,然后创建新的布局产生需求报表。
注:也可以通过取消选中“数据透视表字段列表”中的复选框分别移除现有的字段。
步骤1 选择数据透视表中的任一单元格。
步骤2 单击“数据透视表工具——选项”。
步骤3 在“操作”组中,单击“清除”,然后单击“全部清除”,如下图所示。
ModifyPivotTable1
将清除数据透视表中所有字段,仅在工作表中可见空的布局。“数据透视表字段列表”仍然包含所有源数据中的字段。
2、添加字段到数据透视表的特定区域
在《创建数据透视表》中,选中字段列表里的字段,Excel自动将其放置在区域部分和工作表的数据透视表布局中。后来,移动字段到不同的区域。
除了接受自动放置字段外,还可以控制在哪里放置字段。对于洪水分布报表,希望在行标签区列出区域,列标签区列出洪水分布,并显示每个区域和分布类型总的保险价值。
步骤1 在“数据透视表字段列表”窗格,选取InsuredValue字段。
因为InsureValue字段包含数字数据,Excel自动将其放置在数值区域。
步骤2 选取Region字段。
因为Region是文本字段,Excel自动将其放置在行标签区域。
步骤3 在数据透视表布局中添加Flood字段,但想将其放置在列标签区域,而不是行标签区域。在“数据透视表字段列表”窗格的字段部分,将Flood字段拖动到列标签区域,如下图所示。
ModifyPivotTable2
此时,Flood字段出现在数据透视表的列标签区域,显示N表明没有洪水分布而Y则是有洪水分布的保单。
步骤4 为使数值更容易阅读,可以进行格式化。在数据透视表中任何数值上单击右键,从上下文选项卡中选择“数字格式”。
步骤5 在“设置单元格格式”对话框中,选择“数值”类别。
步骤6 设置小数位位数为0,选取“使用千位分隔符”,单击“确定”。
使用数值格式后,可以看到保险价值中超过3百万是洪水分布区的财产,而只有大约1百万是没有洪水分布区的财产。在Midwest地区,大约一半的保险价值是洪不分布区的财产。
添加报表筛选
你已经报告了每个区域的全部汇总数,但理赔经理想要更多的信息。每份保单为商业的特定类型,下一份报表应该显示制造业总的保险价值。为了限制汇总数据中包括的项目,通过使用存储商业类型数据的BusType字段在数据透视表中添加筛选。
步骤1 在“数据透视表字段列表”窗格中,将BusType字段拖动到“报表筛选”区域,如下图所示。
ModifyPivotTable3
在工作表中,Excel在数据透视表的顶部添加BusType字段并带有项目(全部),如下图所示。数据透视表中的值没有变化。
ModifyPivotTable4
步骤2 单击“(全部)”右侧的下拉箭头,看到商业类型列表。从源数据中的每种商业类型列于此。
步骤3 筛选数据,仅看到制造业类型。于是,单击“Manufacturing”,单击“确定”,如下图所示。
ModifyPivotTable5
数据透视表中的值改变了,现在仅显示对制造业卖出的保单的总的保险保值。在Midwest地区的总保险价值中,洪水分布区的制造业仅有2.5百万元,下图所示。
在工作表的单元格B1中,下拉箭头已经改变为带有小的蓝色箭头的筛选符号。在“数据透视表字段列表”窗格中,有一个筛选图标在BusType字段的旁边,表明该字段应用了筛选。
ModifyPivotTable6
应用筛选后,也可以看到对于制造业,在Central区卖出的所有保单都在洪水分布区,而在Northeast区的洪水分布区没有卖出保单。
1、改变筛选
现在,你已经报告了制造业的汇总,你又被要求做出Midwest的零售业报表。要看到不同商业类型的结果,可以从报表筛选列表中选择不同项。
步骤1 单击BusType报表筛选箭头,打开项目列表。
步骤2 在列表中单击“Retail”,单击“确定”。
数据透视表现在显示零售业类型的总计。在Midwest地区总的保险价值,并且其洪水分布区的零售业仅5.7百万元。
步骤3 要查看所有商业类型的总和,从报表筛选列表项的顶部选择“(全部)”。
2、多项筛选
理赔经理要求的下一个报表是Midwest里的办公建筑和住宅,它们是相似的商业类型,报表应该显示合计数。下面,同时对Apartment和Office Bldg保单应用筛选。
步骤1 在数据透视表中,单击BusType报表筛选下拉箭头。
步骤2 在列表的底部,选取“选择多项”复选框。
步骤3 复选框出现在商业类型项目的旁边,并且选择了多个项目。在数据透视表中,选择(全部),将选中所有的项目,如下图所示。
ModifyPivotTable7
步骤4 要快带移除所有项目的选取,单击(全部)复选框取消选择,将清除列表中所有的复选标记。此时,除非选取至少一项,否则“确定”按钮不可用。
步骤5 选取“Apartment”和“Office Bldg”。
步骤6 单击“确定”并闭列表并应用筛选。
现在,BusType报表筛选显示“(多项)”,表明选择了两个或多个项目,如下图所示。数据透视表显示办公建筑和住宅的汇总值,能够看出大多数保险价值在洪水分布区的保单中。
ModifyPivotTable8
3、移除报表筛选
如果不再需要报表筛选,那么可以从数据透视表中将其移除。现在,已经完成了通过商业类型分析保单,因此将移除报表筛选:
步骤1 选择数据透视表中的任一单元格。
步骤2 在“数据透视表字段列表”窗格,取消“BusType”字段名前的复选。
将从数据透视表中移除报表筛选,并且值为源数据中所有记录的汇总。
当从数据透视表布局中移除筛选字段时,其最后的设置将被记住。在从数据透视表布局中移除BusType字段之前,选择Apartment和Office Bldg项来筛选数据透视表。在“数据透视表字段列表”窗格中,BusType字段仍然显示筛选图标,表明该字段有一个应用的筛选。因为该字段不在数据透视表布局中,所以该筛选当前不会影响显示的数据。
要看到这个被保留的筛选,可以在“数据透视表字段列表”中检查BusType字段,同时也能够修改该字段的筛选设置。
步骤1 在“数据透视表字段列表”中,单击“BusType”字段。
步骤2 在字段名中(见下图)单击箭头打开字段的排序和筛选列表。
ModifyPivotTable9
步骤3 在排序和筛选列表中,可以看到Apartment和Office Bldg项仍然被选择。筛选列表左边的复选标记表明该字段有一个应用的筛选。
ModifyPivotTable10
步骤4 既使BusType字段不在数据透视表布局中,也可以改变其筛选设置。要移除该筛选,单击“从BusType中清除筛选”,如上图所示。
步骤5 筛选和排序列表关闭,在“数据透视表字段列表”的BusType中的筛选图标被移除。
更新数据透视表
在创建数据透视表之后,它仍然连接着源数据。如果对源数据作出了改变,例如添加新记录或者删除记录,那么可以更新数据透视表来反映变化。
1、改变源数据
你了解到在保单源数据的保险价值中有一个错误,必须修正金额,而且,已经卖出了另一份保单,必须在源数据中添加相应的信息。现在,返回到包含源数据的Excel表来进行修改:
步骤1 在Excel表中,找到保单为100208的行,选择保险价值($30,000),这是一个不正确的金额。
步骤2 输入正确的金额($3,000,000),按回车键完成输入。
步骤3 移动到表的末尾,输入一条新记录。
向下移动的一种快速方式是将鼠标指针指向活动单元格的底部,然后双击,如果该列中没有空单元格,则会移至该列的末尾,否则移至空单元格之上的单元格中。
步骤4 在新行中输入记录。
要从该单元格上面的单元格中复制数据,按下Ctrl键的同时,输入“’”。
2、在数据透视表中查看新数据
现在已经完成了对源数据的修改,返回到数据透视表并更新,以便能够看到修正好的保险数据汇总。你改正了East地区的保险价值金额,为Midwest添加了一份新保单,因此这些地区的总数应该增加,总计值也应该增加。
步骤1 选择数据透视表中的任一单元格。
步骤2 单击“数据透视表工具——选项”选项卡。
步骤3 在“数据”组,单击“刷新”按钮,使用新的和修正的数据来更新数据透视表。
ModifyPivotTable11
步骤4 在数据透视表中,数据被更新,显示了East地区和Midwest地区新的汇总和总计,如下图所示。你可以与上文中相应的数据进行对比,看看数据透视表是否更新为新的新据。
当然,也可以在数据透视表中单击右键,从上下文选项卡中选择“刷新”命令。
ModifyPivotTable12
改变汇总函数
当前,数据透视表为每个地区显示InsuredValue求和项。现在希望在每个地区的洪水分布区卖了多少份保单,没有洪水的区域卖了多少份保单。下面,将修改数据透视表中的设置,以便能够看到对InsuredValue字段的不同汇总。
步骤1 在数据透视表中,在数值区域的任意单元格中单击右键。
步骤2 在出现的上下文菜单中,单击“数据汇总依据”。在函数列表中,选取了“求和”函数,因为它是当前InsuredValue字段使用的函数。
步骤3 单击“计数”,通过此函数汇总数据,如下图所示。
ModifyPivotTable13
步骤4 在数据透视表中,数据改变为显示InsuredValue单元格的数量。总计为928,这是保险表中保单记录的数量。
ModifyPivotTable14
应用数据透视表样式
现在,已经按你想要的方式设置了汇总信息,那么可以花一些时间来修饰数据透视表的外观了。修改外观可以使数据更易阅读,并且可能想使用某种配色方案以便和其它文档相适应。
当创建数据透视表时,Excel自动应用了格式。要快速地改变数据透视表的外观,可以应用内置的数据透视表样式。这可能会影响颜色和字体格式,可能添加边框和行或列阴影。
步骤1 选择数据透视表中的任一单元格。
步骤2 单击“数据透视表工具——设计”选项卡。
步骤3 在“数据透视表样式”组中,可以看到已经选择了一种样式,其周边带有边框。
步骤4 指向该样式,其名称将出现在屏幕提示中(如下图),除非关闭了屏幕提示功能。
ModifyPivotTable15
步骤5 指向其他的数据透视表样式,工作表中的数据透视表将出现该样式的预览。
步骤6 要看到其他样式,单击数据透视表样式组右侧的向上或向下按钮。
步骤7 要打开完整的数据透视表样式库,单击右侧的“更多”按钮。
步骤8 在库中,向上和向下拖动滚动条查看数据透视表样式,它们被分成了浅色、中等深浅和深色组。
步骤9 找到喜欢的样式后,单击应用该样式。
删除数据透视表
工作簿中可以包含一个或多个数据透视表,这些数据透视表可以基于相同的数据,也可以基于不同的数据。有时,可能想完全删除某个数据透视表。
步骤1 选择数据透视表中的任一单元格。
步骤2 单击“数据透视表工具——选项”选项卡。
步骤3 在“操作”组中,单击“选择——整个数据透视表”。
步骤4 当选择数据透视表时,按键盘中的“删除”键。Excel删除数据透视表,“数据透视表字段列表”将从视图中消失。
如果要删除带有数据透视表的工作表,在工作表标签中单击右键,从上下文选项卡中选择“删除”命令。
小结
在本文中,你扩充了你的基本的数据透视表技术。学习了如何清除数据透视表,如何在数据透视表的指定区域添加字段。
你添加了报表筛选并使用它来查看指定商业类型的汇总数据。你修改报表筛选,从筛选列表中显示多项数据。当不在需要报表筛选时,将其移除。
接下来,你修改了源数据表中的数据,添加了新数据,然后刷新数据透视表更新其汇总数据。你修改了在InsuredValue字段中使用的汇总函数,使用计数代替求和。
你应用数据透视表样式,使数据透视表中的数据更容易阅读。
最后,你学习了如何删除整个数据透视表。
现在,已经介绍了创建和修改数据透视表的基础知识。在随后的文章中,将深入研究数据透视表的功能,你将看到如何创建更复杂的数据透视表报表。

相关文章

细品RibbonX(35):dialogBoxLauncher元素详解

1 颗星2 颗星3 颗星4 颗星5 颗星 (目前还没有人投票)
Loading ... Loading ...

dialogBoxLauncher是一个小的、几乎看不见的、能够在组中使用的“小玩意”。在界面上是一个带有箭头的小正方形,位于组的右下角。

在大多数情形下,dialogBoxLauncher通过启动内置对话框,提供给用户更多的选项。当然,您也可以创建自已的用户窗体,提供给用户额外的选项或者帮助文档。

1dialogBoxLauncher元素必需和可选的属性

dialogBoxLauncher元素没有任何必需的和可选的属性,其依赖于拥有属性的子对象。

2dialogBoxLauncher元素允许的子对象

dialogBoxLauncher是一个容器,因此不仅接受子对象,而且需要子对象实现功能。dialogBoxLauncher必须具有且仅有一个按钮作为其子对象。实际上,按钮的作用是启动应用程序对话框。

3dialogBoxLauncher元素的父对象

使用dialogBoxLauncher的唯一的地方是组。

4dialogBoxLauncher元素使用示例

UI中,有三种不同的方式实现dialogBoxLauncher

n         使用Microsoft已经使其可用的缺省的对话框启动器之一

n         创建自定义启动器来使用Microsoft的其它对话框之一

n         创建自定义启动器来启动自定义用户窗体

内置的对话框启动器

在自定义组中添加对话框启动器最简单的方式是使用Microsoft内置的对话框启动器按钮作为其子对象。

1)创建一个新的.xlsx文件,并将其保存为Excel dialogBoxLauncher Example.xlsx

2)关闭该文件并在CustomUI Editor中打开。

3)输入下列XML代码:

<customUI xmlns=http://schemas.microsoft.com/office/2006/01/customui>

<ribbon

    startFromScratch=false>

    <tabs>

       <tab id=rxtabDemo

           label=Demo

           insertBeforeMso=TabHome>

           <group id=rxgrpTest

              label=Test>

              <box id=rxboxFormat>

                  <comboBox idMso=Font />

                  <comboBox idMso=FontSize />

              </box>

              <dialogBoxLauncher>

                  <button idMso=FormatCellsFontDialog/>

              </dialogBoxLauncher>

           </group>

       </tab>

    </tabs>

</ribbon>

</customUI>

注意,dialogLauncher仅仅是包含一个按钮的壳。使用dialogBoxLauncher的技巧是确保使用了正确的内置对话框按钮。

4)保存后关闭CustomUI Editor

5)在Excel中重新打开该文件,单击“Test”组右下角的对话框启动器,结果如下图所示。

dialogboxlaunchersample1

 

 

使用内置对话框的自定义对话框启动器

1创建一个新的.xlsm文件,并将其保存为Excel dialogBoxLauncher Example1.xlsm

2)关闭该文件并在CustomUI Editor中打开。

3)输入下列XML代码:

<customUI xmlns=http://schemas.microsoft.com/office/2006/01/customui>

<ribbon

    startFromScratch=false>

    <tabs>

       <tab id=rxtabDemo

           label=Demo

           insertBeforeMso=TabHome>

           <group id=rxgrpTest

              label=Test>

              <box id=rxboxFormat>

                  <comboBox idMso=Font />

                  <comboBox idMso=FontSize />

              </box>

              <dialogBoxLauncher>

                  <button id=rxbtnDialog

                                      onAction=rxbtnDialog_click

                                      screentip=Launch Dialog/>

              </dialogBoxLauncher>

           </group>

       </tab>

    </tabs>

</ribbon>

</customUI>

注意,没有与按钮相关的图像。即使您提供了按钮图像,它也会被对话框启动器图像覆盖。

4)生成回调签名并复制,保存后关闭CustomUI Editor

5)在Excel中重新打开该文件,打开VBE,插入一个新模块,粘贴回调签名代码。

6)编写回调代码:

‘rxbtnDialog onAction回调

Sub rxbtnDialog_click(control As IRibbonControl)

     Application.Dialogs(xlDialogFormatFont).Show

End Sub

编写代码较困难的是找到合适的对话框常量(本例中为xlDialogFormatFont),您可以使用对象浏览器或者智能感知功能来查找。

7)关闭工作簿后重新打开。单击“Test”组右下角的对话框启动器,将出现“字体”对话框。

当然,您也可以修改回调代码中的对话框常量,调用其它对话框。

使用自定义用户窗体的自定义对话框

1创建一个新的.xlsm文件,并将其保存为Excel dialogBoxLauncher Example2.xlsm

2)关闭该文件并在CustomUI Editor中打开。

3)输入下列XML代码(即沿用前一示例):

<customUI xmlns=http://schemas.microsoft.com/office/2006/01/customui>

<ribbon

    startFromScratch=false>

    <tabs>

       <tab id=rxtabDemo

           label=Demo

           insertBeforeMso=TabHome>

           <group id=rxgrpTest

              label=Test>

              <box id=rxboxFormat>

                  <comboBox idMso=Font />

                  <comboBox idMso=FontSize />

              </box>

              <dialogBoxLauncher>

                  <button id=rxbtnDialog

                                      onAction=rxbtnDialog_click

                                      screentip=Launch Dialog/>

              </dialogBoxLauncher>

           </group>

       </tab>

    </tabs>

</ribbon>

</customUI>

4)生成回调签名并复制,保存后关闭CustomUI Editor

5)在Excel中重新打开该文件,打开VBE,插入一个新模块,粘贴回调签名代码。

6)插入一个新的用户窗体,在其中添加标签和按钮。修改标签和按钮,如下图所示。

dialogboxlaunchersample2 

添加按钮单击事件:

Private Sub CommandButton1_Click()

    Unload Me

End Sub

表明当单击按钮后卸载用户窗体。

7)编写回调代码,使用户单击对话框启动器时启动自定义的用户窗体:

‘rxbtnDialog onAction回调

Sub rxbtnDialog_click(control As IRibbonControl)

     UserForm1.Show

End Sub

8)关闭工作簿后重新打开。单击“Test”组右下角的对话框启动器,将显示刚才自定义的用户窗体。

相关文章

Page 12 of 44« First...1011121314...Last »