pageoffice 禁止修改单元格_pageoffice excel拿到单元格数据 - CSDN
精华内容
参与话题
  • Excel文档指定位置填充的时候有一些特殊的需求,比如需要Excel文档指定的位置只能填入某一类型的数据或者...为了实现这样一些特殊的需求,PageOffice开发出来了Excel单元格点击事件,点击单元格时弹出一个模态对话框...

    Excel文档指定位置填充的时候有一些特殊的需求,比如需要Excel文档指定的位置只能填入某一类型的数据或者某几个指定的数据。例如:有用户的需求是在Excel文件的指定单元格处插入一个日期类型的文本,所以这里只能输入日期类型,输入日期类型就需要日期控件,以防止用户随便输入其他格式。

    为了实现这样一些特殊的需求,PageOffice开发出来了Excel单元格点击事件,点击单元格时弹出一个模态对话框,在这个对话框中可以嵌入Html页面,Html页面可以用下拉框,复选框,单选框,日期控件等元素强制用户只能输入某一类型的数据或者某几个数据,然后点击确定后将Html页面元素的值返回到该Excel单元格中。

    JsFunction_OnExcelCellClick属性的使用


    Java代码:

    poCtrl1.setJsFunction_OnExcelCellClick("OnExcelCellClick()");
    

    ASP.NET代码:

    PageOfficeCtrl1.JsFunction_OnExcelCellClick = "OnExcelCellClick()";
    

    然后在当前前台HTML代码里定义js函数: OnExcelCellClick()

     <script language="javascript" type="text/javascript">
         function OnExcelCellClick(SheetName, SubmitName, Value, Left, Bottom) {
             if (SubmitName == "ProductName") {
                 return "可以弹出选择对话框,返回用户选择的值。";
             }
         }
     </script>
    

    效果描述:


    定义一个 JavaScript 函数响应 OnExcelCellClick 事件。

    用户点击Excel文档中指定SubmitName的单元格时触发此事件。 如果您需要响应此事件,您需要在当前 JSP 页面里定义一个 JavaScript 函数。

    在 JavaScript 函数里,可以通过返回值设置当前Cell的值。

    示例解析:


    Java代码:

        PageOfficeCtrl poCtrl = new PageOfficeCtrl(request);
    	// 设置响应单元格点击事件的js函数
        poCtrl.setJsFunction_OnExcelCellClick("OnCellClick()");
        …….
    	poCtrl.webOpen("doc/test.xls", OpenModeType.xlsSubmitForm, "张佚名");
    

    ASP.NET代码:

        // 设置响应单元格点击事件的js 函数
        PageOfficeCtrl1.JsFunction_OnExcelCellClick = "OnCellClick()";
        PageOfficeCtrl1.WebOpen("doc/test.xls", PageOffice.OpenModeType.xlsSubmitForm, "操作人姓名");
    

    客户端的js回调函数响应该事件:

    function OnCellClick(Celladdress, value, left, bottom) {
      var i = 0;
      //表格第一列的5个单元格都弹出选择对话框
      while (i<5) {
          if (Celladdress == "$B$" + (4 + i)) {
              var strRet = document.getElementById("PageOfficeCtrl1").ShowHtmlModalDialog("select.jsp", 
                                 "", "left=" + left + "px;top=" + bottom 
                                 + "px;width=320px;height=230px;frame=no;");
              if (strRet != "") {
                  return (strRet);
              }
              else {
    		      if ((value == undefined) || (value == ""))
    		          return " ";
    		      else
    		          return value;
              }
          }
    	  i++;
       }
    }
    

    示例截图:

    详细请参考PageOffice开发包中Samples4示例演示:
    二、28、响应Excel单元格点击事件(专业版、企业版)

    展开全文
  • VBA开发Office 2007 Ribbon的方法

    千次阅读 2010-12-14 13:43:00
    以下内容摘自《中文版Excel 2007 高级 VBA 编程宝典》 Chapter 22使用功能区概述 Office 2007中最明显的变化可能是基于功能区的新用户界面了。本章提供了功能区的一个概述,并介绍了如何与VBA相关联。从用户角度看...

    以下内容摘自《中文版Excel 2007 高级 VBA 编程宝典》

     

    Chapter 22

    使用功能区

    概述

        Office 2007中最明显的变化可能是基于功能区的新用户界面了。本章提供了功能区的一个概述,并介绍了如何与VBA相关联。

    从用户角度看新的Excel 2007 功能区用户界面 如何让VBA与功能区一起使用 用RibbonX代码定制Ribbon的入门介绍 修改功能区的工作簿示例 创建一个老式工具栏的样板化代码

        功能区是用户界面设计中的一个全新的概念。可以使用XML修改功能区,但是有一些功能区相关的操作可以用VBA执行。

    22.1 功能区基础

        对于Excel 2007,您注意到的第一件事可能是它的新外观。沿用多年的菜单/工具栏式的用户界面已被抛弃,取而代之的是选项卡/功能区式的新界面。虽然新界面与过时的菜单/工具栏式的界面有些类似,但是您会发现它们有本质的不同。

        使用过Excel多年的用户可能会注意到,Excel的菜单系统随着新版本的出现越来越复杂。此外,工具栏的数量也激增。毕竟,每个新功能都必须是可访问的。过去,这些访问意味着要添加更多的项到菜单中,并创建新的工具栏。因此,Microsoft的设计人员着手解决这个过度拥挤的问题,这个新的功能区界面就是解决方案。

    用户是否接受新的功能区界面,时间会告诉我们答案。正如笔者在本书中所述,对人们的反应的最好描述是“混合的”。当新事物出现时,总是有些人喜欢,有些人讨厌。

        在笔者看来,许多有经验的Excel用户会感到轻微的困惑,因为所有他们熟悉的命令顺序都已不复存在。另一方面,新用户则可以快速掌握,因为他们不会被不相关的菜单和工具栏所牵制。

        由于功能区UI是新增的,因此,在接下来的部分介绍了其他一些面向用户的信息。

    功能区选项卡

    功能区中有各种各样的可用命令,取决于选择哪一个选项卡。功能区将相关的命令按组划分。下面是Excel的选项卡概览:

    开始:您可能会把大部分时间花在“开始”选项卡上。该选项卡包括基本的剪贴板命令、格式化命令、样式命令、插入和删除行列的命令,以及工作表编辑命令的分类。 插入:在工作表中插入某对象时,选择该选项卡。例如,插入表格、图示、图表、符号等。 页面布局:该选项卡包含影响工作表整体外观的命令,包括处理打印的设置。 公式:使用该选项卡来插入公式、命名范围、访问公式审核工具或者控制Excel执行计算的方式。 数据:Excel中与数据相关的命令包含在该选项卡上。 审阅:该选项卡包含检查拼写、翻译单词、添加批注和保护工作表的工具。 视图:视图选项卡包含控制如何查看工作表的命令。其中一些命令也可以从状态栏上获取。 开发工具:该选项卡默认是不可见的。它包含对开发人员有用的命令。要显示“开发工具”选项卡,选择“Office”-->“Excel选项”,然后选择“常用”。勾选“在功能区显示开发工具选项卡”复选框。 加载项:该选项仅在加载工作簿或定制菜单或工具栏的加载项时才可见(通过使用CommandBar对象)。由于菜单和工具栏在Excel 2007中不可再用,因此这些定制将显示在“加载项”选项卡中。

     

    Excel 2007 中的CommandBar 对象

    Excel 97 中引用了一种处理工具栏和菜单的全新方式。这些用户界面元素是CommandBar对象。通常称为工具栏的实际上是三种命令栏之一:


    工具栏:带有一个或多个可单击的控件。



    菜单栏:两个内置菜单栏是工作表菜单栏和图表菜单栏。



    快捷菜单:当用户或击某个对象时弹出的菜单。


    基于兼容性的考虑,Excel 2007 仍支持CommandBar对象——但其功能已显著减少。终端用户不再可以创建自定义工具栏。然而,VBA编程人员仍然可以创建和使用CommandBar对象(参见第22.4节“创建老式工具栏”)。问题是,Excel 2007忽略了许多CommandBar对象的属性和方法。例如,每个工具栏或定制的菜单都出现在功能区的“加载项”选项卡中。控制工具栏大小和位置的属性不再有用。此外,不再有浮动的工具栏。

    下面的图显示了Excel 2003 中定制的菜单和工具栏,以及Excel 2007中同样的菜单和工具栏。虽然这些用户界面元素在Excel2007中仍然是可用的,但是很显然已经不是开发人员脑海中曾经的印象了。

    毫无疑问,许多VBA开发人员都想要为他们的应用程序重新做用户界面。

    本章介绍了使用CommandBar对象来创建自定义工具栏的一个简单示例(参见22.4节)。如果想要了解关于使用CommandBar对象创建自定义菜单和工具栏的详细信息,可以参考本书以前的版本。

    Excel 2007中仍然支持定制快捷菜单,第23章将会涉及该主题。

    功能区中的命令的外观随Excel窗口宽度变化而变化。如果该窗口太窄,不能显示全部内容时,命令就会做调整,看上去像缺少的一样,但仍可用。图22-1显示了功能区的“开始”选项卡。在最上面的图中,所有控件都是可见的。在中间的图中,Excel的窗口窄了些。注意,有些描述性的文本不见了,而有些图标变小了。最下面的图显示了极端情况,窗口变得非常窄。有些组只显示一个图标。不过,如果单击该图标,则所有组命令都可用。

    提示:

    如果想隐藏功能区以增大工作表视图,双击任一选项卡。功能区消失(但选项卡仍存在),就可以看到工作表附加的5行。如果需再次使用功能区,可单击选项卡,它会暂时性地再次出现。为了永久恢复功能区,双击选项卡。也可按Ctrl+F1快捷键切换功能区的显示。

    22.2 VBA和功能区

    现在有一个大问题:VBA编程人员可以对功能区做些什么?答案很简单:并不多。

    下面是可以使用VBA对功能区执行的操作列表:

    确定特定控件是否被激活。

    确定特定控件是否可见。

    确定特定控件是否可以按下(对于切换按钮和复选框)。

    获取控件的标签、屏幕提示或超级提示(对控件的更详细的描述)

    显示与某个控件相关联的图像。

    执行特定控件。

    下面是想要对功能区进行却不可能实现的操作列表:

    确定哪一个选项卡是当前选定的。

    激活某个特定的选项卡。

    添加新的选项卡。

    添加一个新的组到选项卡。

    添加新控件。

    删除控件。

    禁用控件。

    22.2.1 访问功能区控件

    Excel包含的功能区控件超过1700个。每个功能区控件都有一个名称,使用VBA操作控件时或以使用该名称。

    使用,下列语句显示一个消息框,其中显示了ViewCustomViews控件的Enabled状态(该控件位于“视图”-->“工作簿视图”组)。

    MsgBox Application.CommandBars.GetEnabledMso("ViewCustomView")

    遗憾的是,不可能通过编写VBA代码来循环遍历功能区上的所有控件并显示控件名称列表。

    22.2.2 使用功能区

    在前面的章节中,介绍了一个使用CommandBars对象的GetEnabledMso方法的示例。下面是CommandBars对象中所有与使用功能区相关的方法的列表。所有这些方法都包含参数idMso,该参数表示的是命令的名称。

    ExecuteMso:执行控件。

    GetEnabledMso:如果指定控件被激活,则返回True.

    GetImageMso:返回控件的图像

    GetLabelMso:返回控件的标签

    GetPressedMso:如果指定控件被按下,则返回True(应用于复选框和切换按钮控件)

    GetScreentipMso:返回控件的屏幕提示(显示在控件中的文本)

    GetSupertipMso:返回控件的超级提示(当鼠标指针移动到控件上时显现的对控件的描述)

    其中一些方法是没有什么用的。为何VBA编程人员需要确定控件的屏幕提示呢?想不出原因。

    下列VBA语句切换“选择和可见性”窗格(一个新功能,帮助选择工作表上的对象):

    Application.CommandBars.ExecuteMso("SelectionPane")

    下列语句显示了“选择性粘贴”对话框:

    Application.CommandBars.ExecuteMso("PasteSpecialDialog")

    下面的命令告诉我们公式编辑栏是否可见(对应于“视图”-->“显示/隐藏”组中的“编辑栏”控件的状态):

    MsgBox Application.CommandBars.GetPressedMso("ViewFormulaBar")

    注意:代码并不能通过访问功能区控件来改变公式编辑栏的可视性。然而,可以使用Application对象的DisplayFormulaBar属性:

    Application.DisplayFormulaBar = True

    下列语句在“合并后居中”控件被激活时显示True(该控件在工作表被保护或活动单元格位于表格内时被禁止执行)。

    MsgBox Application.CommandBars.GetEnabledMso("MergeCenter")

    下列VBA代码将ActiveX图像控件添加到活动工作表中,并使用GetImageMso方法来显示“开始”-->“编辑"组中的“查找和选择”控件的图像:

    Sub ImageOnSheet()

    Dim MyImage As OLEObject

    Set MyImage = ActiveSheet.OLEObjects.Add _

    (ClassType := "Forms.Image.1", _

    Left := 50, _

    Top := 50)

    With MyImage.Object

    .AutoSize = True

    .BorderStyle = 0

    .Picture = Application.CommandBars. _

    GetImageMso("FindDialog", 32, 32)

    End With

    End Sub

     

    22.2.3 激活选项卡

    Microsoft并没有提供一种直接的方法来从VBA中激活功能区选项卡。但是,如果真的想这么做,使用SendKeys是唯一的选择。SendKeys方法模拟按键。激活“开始”选项卡所需的按键是Alt键,然后按H键。这些按键会显示功能区中的按键提示。如果要隐藏按键提示,只需按F6键。有了这些信息,下列语句就会发送所需按键来激活“开始”选项卡:

    Application.SendKeys "%h{F6}"

     

    插入:"%n{F6}"

    页面布局:"%p{F6}"

    公式:"%m{F6}"

    数据:"%a{F6}"

    审阅:"%r{F6}"

    视图:"%w{F6}"

    开发工具:"%l{F6}"

    加载项:"%x{F6}"

     

    关于快速访问工具栏:

    在Excelr 的老版本中,终端用户要修改用户界面相对要简单一些。用户可以创建包含频繁使用的命令的自定义工具栏,甚至可以删除从不使用的菜单项。用户还可以显示任意数量的工具栏,随心所欲地移动工具栏。现在这些都不复存在了。

    快速访问工具栏(QAT)是Excel 2007中唯一一个可以由用户自定义的用户界面元素。用户添加一个命令到QAT中十分简单,因此不论激活哪一个功能区选项卡,命令都是可用的。QAT不能移动,但是Microsoft允许用户决定是否显示QAT:显示在功能区的上面或下面。

    QAT并不是对象模型的一部分,因此不能使用VBA对QAT进行操作。

    QAT信息被存储在名为Excel.qat的XML文件中。文件路径如下:

    c:/Documents and Settings/<username>/Local Settings/Application Data/Microsoft/Office

    可以用文本编辑器或XML浏览器来浏览该文件。如果复制了该文件,并用XML扩展名重命名,那么甚至可以用Excel打开(提示如何打开文件、指定为XML表格时)。但是,不能使用Excel修改Excel.qat文件。

    22。3 定制功能区

    使用VBA不能执行任何功能区修改。因此,需要编写RibbonX代码,将其插入到工作簿文件中——这些都在Excel外部完成。可以创建VBA回调过程。回调过程是一个VBA宏,该宏在自定义的功能区控件被激活时执行。

    RibbonX代码是一个XML标记,它描述了控件、控件在功能区中显示的位置、控件的外观以及控件激活时发生的事件。本书并没有详细介绍RibbonX——它太过复杂,甚至可以用整本书进行描述。但是,本书介绍了一些样本示例,以便您可以更好地理解修改Excel 2007用户界面所涉及的知识,以及确定这些是否是您想要学习的东西。

    22。3。1 RibbonX的一个简单示例

    本小节详细描述了各个步骤细节,以便您对修改Excel的功能区有一个整体感觉。该示例在“数据”选项卡上创建了一个新的功能区组(名为Custom)。它还在新的功能区组中创建了两个按钮,分别标记为Hello World 和 Goodbye World。单击任何一个按钮都会执行一个VBA宏。

    查看错误

    在开始使用功能区定制之前,必须激活RibbonX错误的显示。访问“Office“-->“Excel选项卡“对话框,单击“高级”选项卡。向下浍到“常规”部分,选中“显示加载项用户接口错误”复选框。

    激活该设置后,打开工作簿时就会显示RibbonX错误(如果有的话)——这有助于调试。

    下面是创建一个包含修改功能区的RibbonX代码的工作簿的步骤:

    (1)创建一个新的Excel工作簿,插入一个VBA模块,输入两个回调过程。这些过程在单击按钮时被执行:

    Sub HelloWorld(Control As IRibbonControl)

    MsgBox "Hello World!"

    End Sub

     

    Sub GoodbyeWorld(Control As IRibbonControl)

    ThisWorkbook.Close

    End Sub

    (2)保存工作簿,将欺命名为ribbon modification.xlsm。

    (3)关闭工作簿。

    (4)激活包含ribbon modification.xlsm文件的文件夹,创建一个名为customUI的文件夹。

    (5)在该文件夹内,使用文本编辑器(如Windows记事本)来创建一个名为customUI.xml的文本文件,里面包含下列Ribbon XML代码:

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

    <ribbon>

    <tabs>

    <tab id="Group1" label="Custom">

    <group id="Group1" label="Custom">

    <button id="Button1"

    label="Hello World"

    size="normal"

    onAction="HelloWorld"

    imageMso="HappyFace" />

    <button id="Button2"

    label="Goodbye World"

    size="normal"

    onAction="GoodbyeWorld"

    imageMso="DeclineInvitation" /?

    </group>

    </tab>

    </tabs>

    </ribbon>

    </customUI>

     

    (6)使用Window资源管理器,给ribbon modification.xlsm文件添加一个.zip扩展名。文件名就变为ribbon modification.xlsm.zip。

    (7)将第4步中创建的customUI文件夹拖动到ribbon modification.xlsm.zip文件中。

    (8)双击ribbon modification.xlsm.zip文件将其打开。该文件夹包含一些文件夹。

    (9)双击ZIP文件中的_rels文件夹。该文件夹包含一个文件,名为.rels。

    (10)将.rels文件拖动到ZIP文件的外面(如拖动到桌面)。

    (11)用文本编辑器打开.rels文件(是一个XML文件),如记事本。

    (12)将下列代码添加到.rels文件中,放在</Relationships>标记之前:

    <Relationship Type="http://schemas.microsoft.com/office/2006/relationships/ui/extensibility" Target="/customUI/customUI.xml" Id="12345" />

    (13)保存.rels文件,将其拖回到ZIP文件中,覆盖掉原始版本。

    (14)删除.zip扩展名,文件就变回原来的名称:ribbon modification.xlsm。

    打开Excel中的工作簿,如果一切都正常,就会看到数据栏中有一个新组,该组包含两个按钮。

    功能区的修改是基于具体文档的,理解这一点非常重要。换言之,只有当包含RibbonX代码的工作簿是一个活动工作簿时,新的功能区组才会被显示。这与Excel老版本中的用户界面修改相背离。

    提示:

    要在工作簿活动时显示功能区定制,只需将工作簿换为一个加载宏文件,或将RibbonX代码添加到Personal Macro Workbook中。

    如果认为花费这么多努力来修改Excel的功能区并不值得,请不要失望。可以使用一些工具让整个过程不那么冗长而乏味。在编写本书的时候,只有一个这样的可用工具:Office 2007 Custom UI Editor,由Trang Luu编写。该过程仍然要求手动创建RibbonX代码,但是过程会验证代码的有效性。它还略去了所有繁琐的手动文件操作。最后,会生成VBA回调过程声明,该声明可以复制并粘贴到VBA模块中。

    22。3。2 更多关于RibbonX的简单示例的内容

    本小节介绍了一些关于前面部分所讨论的ribbon modification.xlsm工作簿的更多细节。

    1。VBA回调过程

    还记得工作簿包含了两个VBA过程,即HelloWorld和GoodbyeWorld。这些过程名称对应于RibbonX代码中的onAction参数。onAction参数是将RibbonX代码链接到VBA代码的唯一的方法。

    这两个VBA过程都包含一个名为control的参数,该参数是一个IRibbonControl对象。该对象具有3个属性,可以从VBA代码中访问:

    context:活动窗口的句柄,该窗口包含了触发回调的功能区。例如,可以使用下列表达式来获取包含RibbonX代码的工作簿名称:

    control.Context.Caption

    Id:包含了控件的名称,指定为Id参数。

    Tag:包含与控件相关联的所有文本。

    VBA回庙过程的复杂度可以按需设定。

    2. .rels文件

    插入包含RibbonX代码的文件并没有任何影响,除非在文档文件和定制文件之间指定一种关系。这些关系用XML编写,存储在_rels文件夹中的.rels文件中。下面是上一小节中介绍的救命的关系:

    <Relationship Type="http://schemas.microsoft.com/office/2006/relationships/ui/extensibility" Target="/customUI/customUI.xml" Id="12345" />

    Target参数指向包含RibbonX代码的customUI.xml文件。Id参数包含了一个随机文本字符串。该字符串可以包含任何东西,只要它对于文件来说是唯一的(即,只要没有其他的<Relationship>标记使用同样的Id)。

    3. RibbonX代码

    下面是技巧部分。编写XML代码来定义用户界面修改并不是一项简单的任务。之前已经提过,这本书并不是教您如何编写RibbonX代码。这儿将会介绍一些简单的示例,您可以参考其他一些资料以进一步了解。

    在刚开始着手时,最好从有效的示例开始(搜索Web),然后做一些小的修改,在些过程中经常性地进行测试。可能会有这样的事情发生,您花费了一个小时来研究代码,这些代码从各方面看都很完美,但随后才意识到XML是区分大小写的,ID与id并不相等,这种事往往很令人沮丧。

    22。3。3 RibbonX的另一个示例

    本小节介绍了使用RibbonX来修改用户界面的另外一个示例。该工作簿在“页面布局”选项卡上创建了一个新组,并添加了一个切换分页符显示的复选框控件。

    注意:

    虽然Excel中包含的命令超过1700个,但是却没有一个可以切换分页符显示的命令。在打印或预览一个工作表之后,隐藏分页符显示的唯一方法是使用“Excel选项“对话框。因此,该示例还具有一些实际价值。

    该示例有一些困难,因为它要求新的功能区控件与活动工作表同步。例如:如果激活一个不显示分页符的工作表,复选框控件就应当是被选中的。此外,分页符与图表工作表并不相关,因此,如果激活一个图表工作表,那么该复选框控件应是禁用的。

    1. RibbonX代码

    向“页面布局“选项卡中添加一个新组的RibbonX代码(使用CheckBox控件)如下:

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

    <ribbon>

    <tabs>

    <tab idMso="TabPageLayoutExcel">

    <group id="Group1" label="Custom">

    <checkBox id="CheckBox1"

    label="Page Breaks"

    onAction="TogglePageBreakDisplay"

    getPressed="GetPressed"

    getEnabled="GetEnabled" />

    </group>

    </tab>

    </tabs>

    </ribbon>

    </customUI>

     

    该RibbonUI代码引用了4个VBA回调函数(每个函数都将在稍后进行介绍):

    Initialize:打开工作簿时执行

    TogglePageBreakDisplay:用户单击复选框控件时执行。

    GetPressed:控件失效(用户激活另一个工作表)时执行。

    GetEnabled:控件失效(用户激活另一个工作表)时执行。

    2.VBA代码

    CustomUI标记包含一个onLoad参数,该参数指定了Initialize VBA回调函数,如下所示:

    Public MyRibbon As IRibbonUI

     

    Sub Initialize(Ribbon As IRibbonUI)

    'Exccuted when the workbook loads

    Set MyRibbon = Ribbon

    End Sub

     

    Initialize过程创建了一个名为MyRibbon的IRibbonUI对象。注意,MyRibbon是一个公有变量,因此可以从模块的其他过程中获取。

    创建了一个简单的事件程序,该过程在工作表被激活时执行。它位于ThisWorkbook代码模块中,调用CheckPageBreakDisplay过程:

    Private Sub Workbook_SheetActivate(ByVal Sh As Object)

    Call CheckPageBreakDisplay

    End Sub

     

    CheckPageBreakDisplay过程使复选框控件失效。换言之,它销毁了与该控件相关的所有数据。

    Sub CheckPageBreakDisplay()

    'Executed when a sheet is activated

    MyRibbon.InvalidateControl("Checkbox1"

    End Sub

     

    当控件失效时,GetPressed和GetEnabled过程被调用。

    Sub GetPressed(control As IRibbonControl, ByRef returnedVal)

    'Executed when the control is invalidated

    On Error Resume Naxt

    returnedVal = ActiveSheet.DisplayPageBreaks

    End Sub

     

    Sub GetEnabled(control As IRibbonControl, ByRef returnedVal)

    'Executed when the control is invalidated

    return = TypeName(ActiveSheet) = "Worksheet"

    End Sub

     

    注意,returnVal参数是ByRef传递。这意味着代码可以改变该参数的值。这也确实发生了。在GetPressed过程中,returnVal变量被设置为活动工作表的DisplayPageBreaks属性的状态。产生的结果是,如果分页符被显示,则控件的Pressed参数为True(控件被选中)。否则,控件未被选中。

    在GetEnabled过程中,如果活动工作表是一个工作表(与图表工作表相对),则returnVal变量被设置为True。因此,只有在活动表为一个工作表时,该控件才被激活。

    另一个VBA过程是onAction过程,即TogglePageBreakDisplay,用户选中或未选中复选框时执行该过程。

    Sub TogglePageBreakDisplay(control As IRibbonControl, pressed As Boolean)

    'Executed when check box is clicked

    On Error Resume Next

    ActiveSheet.DisplayPageBreaks = pressed

    End Sub

     

    如果用户选中复选框,则传递的参数为True:如果未选中复选框,则传递的参数为False。代码据此设置DisplayPageBreaks属性。

     

    22。3。4 功能区控件演示

    本小节简要介绍了RibbonX代码和VBA回调过程。

    1.创建一个新选项卡。

    创建新选项卡的RibbonX代码如下:

    <ribbon>

    <tabs>

    <tab id="CustomTab" label="My Stuff" />

    </tabs>

    </ribbon>

     

    提示:如果想要创建一个最小的UI,可以使用ribbon标记的startFromScratch属性。如果将其设置为True,那么所有的内置选项卡都会被隐藏。此外,除了“新建”、“打开”、“Excel选项“和”退出“命令之外,所有的Office按钮菜单命令都会被隐藏。

    <ribbon startFromScratch="true">

     

    2.创建一个功能区

    ribbon controls demo.xlsm 示例中的代码在My Stuff选项卡上创建了4个组。下面是创建这4个组的代码:

    <group id="Group1" label="Stuff">

    </group>

     

    <group id="Group2" label="More Stuff"?

    </group>

     

    <group id="Group3" label="Built In Stuff">

    </group>

     

    <group id="Group4" label="Galleries">

    </group>

     

     

     

     

     

     

    展开全文
  • Programming MS Office 2000 Web Components1

    千次阅读 2005-09-23 14:55:00
    译者说明:欢迎大家访问我的Blog: http://daidaoke.donews.net/daidaoke/ 我的Email:tangtaike@163.com  如需转载,请事先通知。第二章第三节 编程模型要点 现在总结一下我们对电子表格组件的介绍,我将讲述...
     
         我的Email:tangtaike@163.com
          如需转载,请事先通知。
    第二章第三节 编程模型要点
         现在总结一下我们对电子表格组件的介绍,我将讲述(电子表格)控件编程模型的各个要点,以便您了解如何运用这个控件,以及当您需要编写脚本来实现不同的功能时该如何去做。本节不是编程模型的完全指南――那将会是另外一本书。在这里会介绍常用的属性和方法,每个属性和方法会附带一段简短的描述。如果需要了解编程模型的更多信息,可以参考Msowcvba.chm文件中的联机帮助,它位于Office目录的本地化目录下(对于英语语系的人来说,一般是Program Files/Microsoft Office/Office/1033目录)。
         如果您已经非常熟悉Excel的编程模型的话,您会发现它和电子表格组件的编程模型非常相似。
     
    在脚本中使用枚举
         COM和OLE自动化允许组件定义枚举,每个枚举都是指定的一组常量,作用类似编程语言中的类型声明。可以将一个枚举用作属性或方法的参数,这使得如VB和VC这样的环境能够显示包含一个枚举中有效常量的语句完成下拉列表 (译者注:语句完成功能指开发环境会建议开发者如何完成一行代码,使开发者不需要记住对象的所有成员)。OWC和其它许多ActiveX控件一样,包含了一系列预定义的枚举。
         不过,在例如web页面或asp页面这样的脚本环境中,不存在类型的概念。因此,在现有的这些脚本语言中不能使用枚举成员名称,因为这些语言无法知道一个特定的常量(例如ssHAlignLeft)对应的是什么。这意味着您的VBScript或ECMA脚本代码会因为不能自描述的神秘数字而混乱不堪(译者注:指程序中大量的数字常量造成程序很难被读懂)。
         为了尽量解决这个问题,所有的owc组件都有一个名为Constants的顶级属性,在脚本语言中可以使用这个属性访问组件的各种枚举成员。例如,如果您需要在VBScript代码中使用ssHAlignLeft常量使一个单元的内容居左显示,您可以这样书写代码:
    MyRange.HAlignment = Spreadsheet1.Constants.ssHAlignLeft
    为了使用一个枚举常量,您可以把它当作Constants对象的一个属性来引用它,而对象将返回枚举成员的正确的值。
    请注意,如果您计划在您的函数的多处使用常量对象,那么设置一个等于Constants对象的变量是很有用的,这样做既避免了不必要的打字,也能够提高性能。例如,您可以这样书写代码:
    Set c = Spreadsheet1.Constants
    MyRange.HAlignment = c.ssHAlignRight
    MyRange.VAlignment = c.ssVAlignBottom
    Constants对象只在没有枚举概念的脚本语言中有意义。如果您是在VB,VBA或C++中编写代码,请象平常那样直接使用枚举,不用理会Constants对象。
    将数据输入组件
         之前我已经讲述了多个将数据输入组件的技巧。我现在将更详细的描述编程模型中的这些技巧。表2-1列出了与装载数据相关的属性和方法,所有这些属性和方法都通过电子表格对象的接口公布。
    表 2-1. 装载数据相关的属性和方法。
    属性或方法
    描述
    Spreadsheet.DataType
    字符串类型的属性,告诉电子表格组件在多个用于装载数据的属性被设置时,应该使用哪个属性来装载数据,您赋给这个属性的值就是您应该用来装载数据的那个属性的名称――例如,将这个属性设置位HTMLURL,会使组件装载从属性HTMLURL中的URL处 获得的数据。
    Spreadsheet.HTMLData
    字符串类型的属性,可用来获得或设置HTML表格格式的电子表格内容。这种格式也包含了额外的属性和XML标签,这些属性和标签是用来保留重建电子表格模型所必须的信息(例如一个单元公式)的,不过它们不属于HTML3.2的表格格式。您可以将这个属性设置为包含了一个HTML表格的一个字符串,或者在需要保存时通过读取该属性值来获得电子表格完整的内容。
    Spreadsheet.HTMLURL
    字符串类型的属性,包含了一个URL,可以从这个URL处装载电子表格的数据。这个URL必须返回一个包含了表格的HTML文档。使用Excel 2000中来保存为HTML格式的电子表格可以使用这个属性来装载,这个属性也可以是一个从数据库中实时生成表格的ASP页面或CGI程序。
    Spreadsheet.CSVData
    字符串类型的属性,和属性HTMLData类似,不过它接受和返回的数据的格式是CSV。当需要从不能发布HTML格式的老系统中装载数据时这个属性很有用。
    Spreadsheet.CSVURL
    字符串类型的属性,和属性HTMLURL类似,不过它希望从URL处获得的数据格式是CSV格式的。就象HTMLURL属性一样,这个URL可以是一个从数据库中实时生成表格的ASP页面或CGI程序。
    Spreadsheet.LoadText
     
    可以将一个被分隔的文本文件载入电子表格的方法。与CSV格式不同的是,这个文本文件可以使用任何字段分隔符。Range对象也可使用LoadText方法和它的兄弟方法ParseText,来将文本载入电子表格的一个指定的区域中。LoadText方法可以指向一个您本地文件系统中的文件或指向一个URL。
     
     
     
     
     
     
    使用区域
         电子表格组件中最常使用的编程接口是Range对象。很多方法都返回Range对象,当需要对一个区域的各单元进行修改,格式化,排序和设置自动筛选时,都会用到Range对象。表2-2显示了在你建立电子表格组件的解决方案时应该了解的Range对象的属性和方法。
    表 2-2. Range对象主要的属性和方法。
    属性或方法
    介绍
    Spreadsheet.Range
    该方法接受一个区域引用(例如A1:B2或A:B),返回一个Range对象。因为一个区域可以只有一个单元,因此您也可以传入单个单元的引用(例如A1)。该方法也可以接受两个不同的单元引用,而返回一个含盖这两个单元的区域。
    Range.Address
    该属性返回一个区域的地址(例如,A1:B2)。
    Range.Cells
    当我首次看到这个函数时,我非常迷惑,因为它被定义为返回另一个Range对象。不过,您可以将该属性当作多个单元的一个集合,也就是说您可以使用For Each循环访问其中的每一个单元。该属性也可以以二维数组的形式来访问。例如,MyRange.Cells(1,3).Value会返回区域中行1,列3的值。电子表格和工作表对象也有Cells属性,因此您可以使用它代替前面提到的Range方法来访问指定单元。
    Range.Column, Range.Row
    这些属性指出区域中首行和首列的编号。当您在一个区域的行和列中进行迭代时,如果需要知道当前位于哪行哪列,这个属性非常有用。
    Range.Columns, Range.Rows
    虽然在名称上和前两个属性非常相似,但是这对属性返回的是Range对象包含的行或者列的集合。Range.Columns.Count和Range.Rows.Count可以告诉你当前区域中行和列的数目。
    Range.HTMLData
    该属性和Spreadsheet.HTMLData属性相似,不过Range对象的这个属性是只读的。使用它可以快速获得一个给定区域中数据的HTML表格的表现形式。
    Range.Value
    该属性获得或设置区域的值。虽然帮助文件说在区域由多个单元构成时Range.Value会返回一个二维变量数组,但实际上当前版本中这是没有实现的。不过,Range.Value可以接受一个二维数组的变量,来将数据输入区域中,当你需要使用文字值设置一个或多个单元值,或者是需要获得一个单元的无格式的值时,可以使用这个属性。(译者注:无格式的值指没有经过格式化的值。)
    Range.Formula
    该属性读写一个单元的公式字符串。当您需要获得或设置区域中一个或多个单元的公式时可以使用这个属性,记住在公式的开始使用等号(=)。
    Range.Text
    Range.Text属性返回Range.Value属性的格式化版本。当您需要在消息框或另一个用户界面元素中显示格式化的值时这个属性很有用,该属性值就是您在添加AutoFilter对象的过滤条件时传入的值。(译者注:也就是说,过滤是根据一个单元格的表面值进行过滤的)
     
    格式化
    在将数据载入电子表格后,您可能需要通过编程来控制格式化。每个单元都有自己的字体,对齐方式,边框,颜色和数字格式属性,所有这些特征都可以使用表2-3中的属性来设置。
    表 2-3. 用于格式化的属性。
    属性
    描述
    Range.NumberFormat
    字符串类型的属性,控制单元中数字的格式。您可以引用现有的格式名称来使用众多的内置格式(例如Currency)。也可以创建自定义格式(例如,#,###,使1000显示为1,000)。
    Range.Font
    返回一个许多组件都能使用的常用的Font对象。Range.Font允许设置Font对象的的多个属性,例如Name,Size,Bold,Italic,Color和Underline。请注意,如果需要,可以在Font.Color属性中使用IE的颜色名。
    Range.Halignment, Range.Valignment
    这两个属性控制区域的各单元水平和垂直方向上的文本对齐方式。每个属性中定义了各自可以使用的对齐方式的枚举值。
    Range.Borders
    该属性返回一个Borders对象,可以通过它来设置每个单元边框的各个特性,如边框线的线粗,样式及颜色。
     
    组件级的外观和行为
    许多属性和方法会影响整个电子表格组件。表2-4列出了定制的解决方案中最有趣的属性和方法。
    表 2-4. 影响整个电子表格的主要属性。
    Property
    Description
    Spreadsheet.AllowPropertyToolbox
    控制是否显示属性工具箱(译者注:指“命令和选项”窗口)。如果该属性设置为False,属性工具箱在工具条上的图标和在右键菜单上的菜单项会被禁止。可以随时使用这个属性来禁止缺省的格式化用户界面,并提供您自己的格式化界面。
    Spreadsheet.AutoFit
    决定控件是否处于”自动适应”模式。请查看前面章节中关于AutoFit的细节来了解这个特性是如何工作的。
    Spreadsheet.Dirty
    当控件中有任何修改,任何单元被改变后,这个属性会被置为true以通知您这个改变。通常使用Dirty属性来判断是否需要保存内容。请注意这是一个read/write属性,因此可以通过重置它来使电子表格又变”干净”。You commonly use the Dirty property to determine whether you need to save the contents in some way.
    Spreadsheet.DisplayColHeaders, Spreadsheet.DisplayRowHeaders
    控制是否显示行头和列头。这两个属性的缺省值是True。通常,您可以在需要使用您自己的代码来对电子表格界面进行完全控制时将这两个属性设置为False。
    Spreadsheet.DisplayGridlines
    控制是否显示网格线。缺省是要显示的,如果在定制解决方案中,要在需要单元分隔线的地方使用边框,则常关闭这个属性。
    Spreadsheet.DisplayPropertyToolbox
    控制是否显示属性工具箱。将属性置为true则显示,置为false就会隐藏。
    Spreadsheet.DisplayTitleBar
    控制是否显示标题栏。缺省是显示标题栏的。可以使用下面介绍的TitleBar属性来修改标题栏上的内容和格式。
    Spreadsheet.DisplayToolbar
    控制是否显示工具条。缺省是显示。
    Spreadsheet.EnableAutoCalculate
    控制电子表格模型如何重算。如果这个属性被置为false,电子表格模型不会自动重算;必须调用工作表对象的Calculate方法,才能看到改变输入后的新结果。在计划修改一系列的输入,并且希望只有在完成所有的修改后,才重算模型时,这个属性非常有用。这个属性缺省为True――模型会在电子表格被修改时自动进行重算。
    Spreadsheet.ScreenUpdating
    缺省情况下,电子表格在屏幕上的显示总是反映最新的数据,不过如果计划执行大量的操作,而不希望电子表格在每一个操作之后都会因为更新而闪烁。可以将这个属性置为Fasle。将这个属性重新设回True会触发一个彻底的重绘动作。
    Spreadsheet.Selection
    返回当前选择的对象。可以使用VBA或VBScript中的TypeName函数来判断这个对象的类型。
    Spreadsheet.TitleBar
    使您可以访问电子表格的标题栏,可以改变标题栏的文本和格式。
    Spreadsheet.ViewableRange
    控制电子表格实际可见的部分。请查看前面关于ViewableRange和AutoFit的介绍,以了解这个属性是如何工作的。
     
    排序和过滤
    表 2-5 列出了在电子表格组件中排序和过滤数据时可以使用的属性和方法。
    Table 2-5. 具有排序和过滤功能的属性和方法。
    属性或方法
    介绍
    Range.Sort
    根据给定的列和排序方法对区域进行排序。
    Worksheet.AutoFilter
    该属性返回一个AutoFilter对象,该对象可用来设置当前过滤器的细节。
    AutoFilter.Filters
    该属性返回当前自动过滤区域的过滤器集合。一个过滤器对象应用于自动过滤区域中的一列,过滤器对象的下标和对应区域中列的下标相对应。
    AutoFilter.Apply
    该方法应用一个新的自动过滤。在设置完过滤条件后,必须调用这个方法来实际应用过滤器。
    Criteria.FilterFunction
    该属性控制符合过滤条件的项是包括在过滤器中,还是被排除在过滤器之外。如果是包含,则过滤器仅包含符合过滤条件集合的项,而如果是排除,则过滤器包含除了哪些符合过滤条件集合的项之外的所有项。
    Criteria.ShowAll
    该属性决定是否显示所有的数据。当设为True时,该属性重置过滤器来显示所有的数据。当设为False时,假如没有任何过滤条件,将不显示任何数据。
    Criteria.Add
    该方法将一个新的过滤条件添加到过滤器中。
    Range.AutoFilter
    该方法针针对一个给定的区域打开AutoFilter开关。首先调用这个方法,然后使用Worksheet.AutoFilter属性(如上所述)访问过滤器并设置过滤条件。
     
    保   护
         如果需要保护电子表格的某部分,使您的用户不能修改单元内容或改变单元格式,您需要使用控制保护功能的各属性。表2-6列出了常用的具有保护功能的属性,并给出如何使用每一个属性的简短的描述。
    请注意,保护设置即通过用户界面应用到用户交互中,也应用到代码中执行的操作中。因此如果您在一个保护选项被启用的情况下需要删除一行,您必须在执行删除操作前将Protection对象的Enabled属性设置为False,并在完成操作后,将Enabled属性设回True以便返回到受保护的状态。
    表 2-6. 常用的具有保护功能的各属性。
    属性
    描述
    Worksheet.Protection
    返回一个Protection对象,可以使用它设置各种保护选项,从而启用各种全局操作(例如:插入和删除行)。
    Protection.Enabled
    控制一般情况下是否启用保护。在需要使用保护选项或锁定单元格时,首先设置选项或者锁定单元格,然后将这个属性设为True。当需要在代码中执行操作时,可以将该属性设为False来暂时禁止保护功能。
    Protection.AllowInsertingColumns, Protection.AllowInsertingRows, Protection.AllowDeletingColumns, Protection.AllowDeletingRows
    允许或禁止在电子表格中插入、删除列或行。例如,如果AllowInsertingRows被设为False,则电子表格会禁止所有用来插入一行的命令,包括哪些编程模型中的命令。
    Protection.AllowSizingAllColumns, Protection.AllowSizingAllRows
    允许或禁止调整列或行的大小。例如,如果AllowSizingAllRows被设为False,电子表格就不会允许用户调整行的大小,也不会允许您通过代码来这样做。
    Protection.AllowSorting
    允许或禁止在电子表格中排序数据。将AllowSorting设为False会禁止用户对任何区域中的内容进行排序。
    Protection.AllowFiltering
    允许或禁止使用自动筛选功能。将这个属性设为False会禁止用户启用自动过滤功能。
     
    撤  消
    表2-7 列出了当您控制电子表格组件的撤消机制时会用到的有关的属性和方法。
    表 2-7. 控制撤消机制相关的属性和方法。
    属性和方法
    描述
    Spreadsheet.BeginUndo
    一个使您可以将一系列的操作看作一个撤消操作的方法。例如,如果您调用BeginUndo方法,然后执行了三个不同的排序动作,或改变了许多单元,您可以一下撤消所有这些操作。
    Spreadsheet.EndUndo
    一个标记您的逻辑撤消单元的结束的方法。在调用BeginUndo方法和调用EndUndo方法之间执行的所有操作会被当前一个单一的单元来撤消。
    Spreadsheet.EnableUndo
    该属性控制撤消功能是否可用。缺省是可用的。您可能需要暂时禁止这个功能,以便节约内存或在代码中执行大量的操作。
     
    有用的事件
    电子表格的顶级对象公布了大量的事件,比OWC库中的任何其它控件都要多。表2-8列出了一些关键的事件,当围绕电子表格组件开发定制解决方案时您很可能会需要使用它们。
    几乎所有电子表格控件中的事件都向事件处理函数传递一个类型为SpreadsheetEventInfo的单一参数。SpreadsheetEventInfo是一个COM对象,您可以使用它来获得事件被触发时应用程序状态的各种信息,包括什么被选择了,那个区域被影响了,鼠标的位置在哪里,那个键被按下,等等。这反映出DOM中事件信息的处理方式。
    使用一个对象来作为事件参数的最重要的原因,是因为需要支持JavaScript中的撤消事件的功能。JavaScript中传递给事件的参数总是值传递的,除非参数是对象的指针。换句话说,如果OWC小组将事件设计为附加一个ReturnValue参数,脚本可以通过将这个参数设置为True来撤消事件,那么在JavaScript中因为参数的值传递方式这不会正常工作。然而,如果脚本将一个对象的ReturnValue属性设置为True,触发事件的控件则会正确的发现它。因此,如果您需要撤消一个事件(大部分以”Before”开头的事件是可以被撤消的),请将SpreadsheetEventInfo对象的ReturnValue属性设为False。
    表 2-8. 有用的事件
    事件
    描述
    Spreadsheet.Change
    只要电子表格中的一个或多个单元被改变,该事件就会被触发。可以使用SpreadsheetEventInfo对象的Range属性来判断被改变的区域。
    StartEdit, EndEdit, CancelEdit
    当一个单元将要被编辑,正要结束编辑,或正要撤消编辑时触发。您可以在EndEdit事件处理函数中执行数据校验,并通过将SpreadsheetEventInfo对象的ReturnValue属性设为True来拒绝输入的新值。使用SpreadsheetEventInfo对象的EditData属性可获得单元的新值。为了编辑的需要,可以在StartEdit事件中使用另一个元素来代替显示的值。例如使用一个TrueType字体来显示一个特殊的符号,而不是使用文字的描述。
    BeforeCommand, Command
    在正要执行一个命令之前和刚执行完一个命令后触发――例如排序;过滤;插入或删除行或列;显示帮助;和剪切,拷贝或粘贴这样的动作――被执行时。在Msowcvba.chm文件中或在您的对象浏览器中查看SheetCommandEnum常量的列表,可以知道在这些事件中可以捕捉的所有命令。同样的,如果需要撤销一个事件的缺省行为,您可以将BeforeCommand事件中的ReturnValue属性设置为False。例如,您可能希望当用户点击电子表格工具条上的帮助按钮时显示您自己的帮助页面。
    获得版本信息
    有时您需要查看正在使用的控件的版本,以便能够利用新特性的优势,或者使用变通的代码来解决一个较早版本中的问题。大部分的软件程序都会在主要的版本之间发布SR版本,因此您常常需要检查您的代码正在交互的版本是否就是您所期望的版本。
    为了帮助您完成这些工作,我们为owc库中的每一个控件添加了表2-9中的属性。您可以使用这些属性来判断您的代码正在操作的控件的版本,并执行适当的动作。
    表 2-9. 所有Office Web 组件都具有的版本信息属性。
    属性
    描述
    MajorVersion
    一个long型的整数值,指示组件的主版本号。对于Office 2000版本来说,这个数字是9。
    MinorVersion
    一个字符型的值,指示组件的次版本号。对于Office2000版本来说,这个数字是0,如果在下一个主版本发布之前,发布了任何小版本,这个数字会增加。请注意,为了处理出现例如”a”这样的版本号的情况,MinorVersion是一个字符串值。最好对这个值进行相等的比较操作,而不要进行大于或小于的比较操作。
    BuildNumber
    一个字符型的值,指示组件的编译数目。编译数目会随着组件DLL的每一次编译而增加。Office 2000版本的这个数值在写作这本书时还不可用,这也是一个字符型的数值,因此,它可以处理在发布一个次版本时版本号中被加入了一个字母的情况。
    Version
    一个字符型的数值,返回整个版本数值。当需要显示版本号时可以使用这个属性,但是在需要判断一个版本是否就是您需要的那个版本时请使用其它的属性。
     
     
     
     
    附录(英文原文):
    To conclude our introduction to the Spreadsheet component, I'll cover the key elements of the control's programming model so that you'll know how to get the control working and where to go when you want to write script for different functionality. This section is not a full reference to the programming model—that would be a book unto itself. Instead, the properties and methods you'll commonly use are presented here, along with a brief description of each. For more information on any part of the programming model, refer to the online help in the Msowcvba.chm file, which you can find in the local folder under the Office folder (generally Program Files/Microsoft Office/Office/1033 for English-speaking people).
    If you are at all familiar with the Excel programming model, you will notice that the Spreadsheet component's programming model is quite similar.
    COM and OLE Automation enable components to define enumerations, each of which is a named set of constant values that acts like a type declaration in a programming language. A property or method argument can be typed as an enumeration, which causes environments such as Visual Basic and Microsoft Visual C++ to display the statement completion drop-down list containing the valid constants for that enumeration. The Office Web Components, like many other ActiveX controls, have a predefined set of enumerations.
    However, in scripting environments such as a web page or an ASP page, no notion of types exists. Therefore, no ability to use enumeration member names in script languages exists since these languages have no way of knowing what a particular constant, such as ssHAlignLeft, evaluates to. This means your VBScript or ECMA Script code can get littered with magical numbers that are not self-describing.
    To alleviate this problem, all the Office Web Components have a top-level property called Constants that can be used in scripting languages to access their various enumeration members. For example, if you want to use ssHAlignLeft in VBScript code to align a cell's contents to the left, you can write code like this:
    MyRange.HAlignment = Spreadsheet1.Constants.ssHAlignLeft
    The most commonly used programming interface in the Spreadsheet component is that of the Range object. Range objects are returned from many methods and are used whenever you want to modify the contents, formatting, sort order, or filter settings of a range of cells. Table 2-2 shows the properties and methods of the Range object that you should know about when building solutions with the Spreadsheet component.
    Table 2-2. Principal Range object properties and methods.
    Property or Method
    Description
    Spreadsheet.Range
    This method returns a Range object given a range reference (such as A1:B2 or A:B). Because a range can be just one cell, you can also pass a single cell reference (such as A1). The Range method can also take two different cell references and return a bounding range.
    Range.Address
    This property returns the address of the range (for example, A1:B2).
    Range.Cells
    I was highly confused by this property when I first saw it because it's typed to return another Range object. However, you can use this property as a collection of cells, meaning that you can access the individual cells using a For Each loop. The property can also be accessed as a two-dimensional array. For example, MyRange.Cells(1,3).Value will return the value from row 1, column 3 in the range. There is also a Cells property for the Spreadsheet and Worksheet objects, so you can use it instead of the Range method (described earlier) to access specific cells.
    Range.Column, Range.Row
    These properties indicate the number of the first column and first row in the range. They are useful when you're iterating over a range of columns or rows and want to know what column or row you're at.
    Range.Columns, Range.Rows
    Although strikingly similar in name to the previous two properties, this duo returns a collection of columns or rows contained in the Range object. Range.Columns.Count and Range.Rows.Count tell you the number of columns and rows in the current range.
    Range.HTMLData
    This property is similar to Spreadsheet.HTMLData, except that it is read-only for the Range object. Use it to quickly get an HTML table representation of the data in a given range.
    Range.Value
    This property gets or sets a variant value for the range. Although the help file states that Range.Value returns a two-dimensional array of variants if the range constitutes more than one cell, it actually isn't implemented in this version. However, Range.Value can accept a two-dimensional array of variants for putting data into the range. Use this property when you want to set the cell or cells to a literal value or when you want to get a cell's current unformatted value.
    Range.Formula
    This property is used to read or write the formula string for a cell. Use it when you want to get or set the formula for a cell or cells in a range, and remember to use the equals sign (=) at the beginning of the formula.
    Range.Text
    The Range.Text property returns the formatted version of the Range.Value property. It is useful when you need to present the formatted value in a message box or another user interface element, and it's the value you pass when adding AutoFilter criteria.
    Once you have loaded data into the spreadsheet, you might want to apply formatting programmatically. Each cell can have its own font, alignment, border, color, and number formatting, and all these aspects are set using the properties shown in Table 2-3.
    Table 2-3. Formatting properties.
    Property
    Description
    Range.NumberFormat
    A string-based property that controls the formatting used for a cell's numeric value. A number of built-in formats that you can use by name exist (such as Currency). You can also construct your own format definitions (for example, #,###, which makes 1000 appear as 1,000).
    Range.Font
    A property that returns the common Font object used by many of the components. Range.Font lets you set various properties of the Font object such as Name, Size, Bold, Italic, Color, and Underline. Note that you can use the Internet Explorer color names with the Font.Color property if you want.
    Range.Halignment, Range.Valignment
    Two properties that control the horizontal and vertical text alignment within the range's cells. Enumerations that contain the possible alignment values are defined for each of these properties.
    Range.Borders
    A property returning the Borders object that lets you set the various aspects of each cell border, such as line weight, line style, and line color.
    A number of properties and methods affect the entire Spreadsheet component. Table 2-4 shows the most interesting ones for custom solutions.
    Table 2-4. Principal properties that affect the spreadsheet as a whole.
    Property
    Description
    Spreadsheet.AllowPropertyToolbox
    Controls whether the Property Toolbox can be shown. If AllowPropertyToolbox is set to False, the Property Toolbox toolbar icon and context menu command are disabled. You use this property any time you want to disable the default formatting user interface and supply your own.
    Spreadsheet.AutoFit
    Determines whether the control is in AutoFit mode. See the section earlier on AutoFit for more details on how this feature works.
    Spreadsheet.Dirty
    Tells you if anything has changed in the control. If any cell has been modified, this property returns True. You commonly use the Dirty property to determine whether you need to save the contents in some way. Note that this is a read/write property, so you can also reset it to make the spreadsheet "clean" again.
    Spreadsheet.DisplayColHeaders, Spreadsheet.DisplayRowHeaders
    Control whether the column and row headers are displayed. These two properties are True by default. Normally, you set them to False if you want to have total control over the spreadsheet surface from your code.
    Spreadsheet.DisplayGridlines
    Controls whether gridlines are displayed. By default they are, and it's common to turn them off for custom solutions that use borders in specific places where you want cell separator lines.
    Spreadsheet.DisplayPropertyToolbox
    Controls whether the Property Toolbox is displayed. Set this to True to display it or False to hide it.
    Spreadsheet.DisplayTitleBar
    Controls whether the title bar is displayed. The title bar is displayed by default. Use the TitleBar property described below to modify the contents and formatting of the title bar.
    Spreadsheet.DisplayToolbar
    Controls whether the toolbar is displayed. The toolbar is displayed by default.
    Spreadsheet.EnableAutoCalculate
    Controls how the spreadsheet model recalculates. If this property is set to False, the spreadsheet model will not automatically recalculate; you must call the Calculate method of the Worksheet object to see new results for changed inputs. This property can be useful if you plan to make many changes to a set of inputs and want to recalculate the model only when you're done with all the changes. By default, this property is True—models will automatically recalculate when changed.
    Spreadsheet.ScreenUpdating
    By default, the screen display of the spreadsheet always reflects the most current data, but you can set this property to False if you plan to perform a number of operations and don't want the spreadsheet to flicker after each one. Setting this property back to True causes a full repaint.
    Spreadsheet.Selection
    Returns the currently selected object. You can use the TypeName function in VBA or VBScript to determine what type of object it is.
    Spreadsheet.TitleBar
    Gives you access to the Spreadsheet control's title bar, which you can change the text and formatting of.
    Spreadsheet.ViewableRange
    Controls what part of the spreadsheet is actually visible. See the earlier discussions of ViewableRange and AutoFit for more details on how this works.
    Table 2-5 lists the properties and methods you will use when sorting and filtering data in the Spreadsheet component.
    Table 2-5. Properties and methods for sorting and filtering.
    Property or Method
    Description
    Range.Sort
    This method sorts the range given a column and sort direction.
    Worksheet.AutoFilter
    This property returns the AutoFilter object that can be used to set up the details of a current filter.
    AutoFilter.Filters
    This property returns the Filters collection for the current AutoFilter range. One Filter object applies to each column in the AutoFilter range, and the index of the Filter object matches the column index in the range.
    AutoFilter.Apply
    This method applies a new AutoFilter. After you've set up the criteria, you must call this method to actually apply the filter.
    Criteria.FilterFunction
    This property controls whether the criteria is included in the filter or excluded from it. Include filters include exactly the items in the criteria set, while exclude filters exclude the items in the criteria set but include everything else.
    Criteria.ShowAll
    This property determines whether all data will be shown. When set to True, the property resets a filter to show all data. When set to False, assuming there are no filter criteria, it shows no data.
    Criteria.Add
    This method is used to add new criteria to a filter.
    Range.AutoFilter
    This method is used to turn AutoFilter on for a given range. Call this method first, and then use the Worksheet.AutoFilter property (described above) to access the filters and set up the criteria.
    If you want to protect part of the spreadsheet so that your users cannot modify cell contents or change cell formatting, you need to work with the properties that control protection. Table 2-6 lists the common protection properties and gives a brief description of how each is used.
    Note that the protection settings apply to user interactions through the user interface and to operations performed in code. If you want to delete rows while a protection option is enabled, you must set the Enabled property of the Protection object to False before performing the operation, and then set it back to True to return to the protected state.
    Table 2-6. Common protection properties.
    Property
    Description
    Worksheet.Protection
    Returns the Protection object for which you set the various protection options that enable global actions such as inserting or deleting rows.
    Protection.Enabled
    Controls whether protection in general is enabled. To use the protection options or lock cells, first set the option or lock the cells and then set this property to True. You can set this property to False to temporarily disable protection while you perform operations in code.
    Protection.AllowInsertingColumns, Protection.AllowInsertingRows, Protection.AllowDeletingColumns, Protection.AllowDeletingRows
    Enable or disable the ability to insert or delete columns or rows in the spreadsheet. For example, if AllowInsertingRows is set to False, the spreadsheet will disable all commands that can be used to insert a row, including those in the programming model.
    Protection.AllowSizingAllColumns, Protection.AllowSizingAllRows
    Enable or disable the ability to resize columns or rows. For example, if AllowSizingAllRows is set to False, the spreadsheet won't allow the user to resize the rows, nor will it let you do so through code.
    Protection.AllowSorting
    Allows or prohibits the sorting of data in the spreadsheet. Set AllowSorting to False to prohibit users from sorting the contents of any range.
    Protection.AllowFiltering
    Allows or prohibits the use of the AutoFilter feature. Set this property to False to prohibit users from enabling the AutoFilter feature.
    Table 2-7 lists the relevant properties and methods you will use when controlling the Undo mechanism of the Spreadsheet component.
    Table 2-7. Properties and methods for controlling undo.
    Property or Method
    Description
    Spreadsheet.BeginUndo
    A method that enables you to treat a number of operations as one undo operation. For example, if you call BeginUndo and then perform three different sorts or change many cells, you can undo all these operations at once.
    Spreadsheet.EndUndo
    A method that marks the end of your logical undo unit. All operations performed between the BeginUndo call and the EndUndo call will be undone as a single unit.
    Spreadsheet.EnableUndo
    A property that controls whether the undo feature is available. By default, it is. You might want to temporarily disable this feature to save memory or perform a number of operations in code.
     
     
    A number of events are exposed from the top-level Spreadsheet object, more than from any other control in the OWC library. Table 2-8 lists several of the key events you likely will want to use when developing custom solutions around the Spreadsheet component.
    Nearly all the events in the Spreadsheet control pass a single parameter of type SpreadsheetEventInfo to the event handler. SpreadsheetEventInfo is a COM object that you can use to retrieve all kinds of information about the state of the application when the event was fired, including what was selected, what range was affected, where the mouse was, what keys were pressed, and so on. This mirrors the treatment of event information in the DOM.
    The biggest reason to use an object as the parameter is to support cancelable events in JavaScript. Parameters passed to an event in JavaScript are always passed by value unless they are object pointers. In other words, if the OWC team had designed the events with a ReturnValue parameter that the script set to True to cancel the event, it wouldn't work in JavaScript because of the parameter being passed by value. However, if the script sets an object's ReturnValue property to True, the control raising the event will see it. So if you want to cancel an event (most of the events whose names begin with "Before" can be canceled), set the ReturnValue property of the SpreadsheetEventInfo object to False.
    Table 2-8. Useful events.
    Event
    Description
    Spreadsheet.Change
    Fires any time a change is made to a cell or cells in the spreadsheet. Use the Range property of the SpreadsheetEventInfo object to determine the range affected.
    StartEdit, EndEdit, CancelEdit
    Raised whenever a cell is about to be edited, was just edited, or just had its edit canceled. You can perform data validation in the EndEdit event and set the ReturnValue property of the SpreadsheetEventInfo object to True to deny the new value. Use the EditData property of the SpreadsheetEventInfo object to get the new value for the cell. Use the StartEdit event to replace a displayed value with another element for editing purposes, such as using a TrueType font for displaying a special symbol instead of a text description.
    BeforeCommand, Command
    Raised just before and after a command—an action such as sorting; filtering; inserting or deleting rows or columns; showing help; and cutting, copying, or pasting—is processed. See the list of SheetCommandEnum constants in the Msowcvba.chm file or in your object browser for all the possible commands you can catch using these events. Again, set the ReturnValue property to False in the BeforeCommand event if you want to cancel the default behavior for an event. For example, you might want to show your own help page when the user clicks the Help button on the spreadsheet  toolbar.
    Sometimes you need to find out the version of the control you're working with so that you can either take advantage of new features or use workaround code to solve problems in an older version. Most software programs have service releases between their major version releases, so you often need to verify that the version your code is talking to is indeed the version you expect.
    To help you do so, we added the properties listed in Table 2-9 to every control in the Office Web Components library. You can use them to determine the version of the control you're coding against and take the appropriate action.
    Table 2-9. Version information properties for all Office Web Components.
    Property
    Description
    MajorVersion
    A long integer value that indicates the major version number of the component. For the Office 2000 release, this number is 9.
    MinorVersion
    A string-based value that indicates the minor version number of the component. For the Office 2000 release, this number is 0 and will be incremented if any minor releases occur before the next major version release. Note that MinorVersion is a string value in case an "a" release occurs. It's best to perform an equality comparison on this value rather than a greater-than or less-than comparison.
    BuildNumber
    A string-based value that indicates the build number of the component. The build number is incremented with every build of the component DLL, and the value for the Office 2000 release wasn't yet available at the time of this writing. Again, this is a string value, so it can handle cases in which a letter is added to a version number in the event of a minor release.
    Version
    A string-based value that returns the entire version number. Use the Version property when displaying the version, but use the other properties for determining whether the version is the one you want.
     

    展开全文
  • 目录 Word Excel Word [F1]键:帮助 [F2]键:移动文字或图形,按回车键确认 [F4]键:重复上一次的操作 [F5]键:编辑时的定位 [F6]键:在文档和任务窗格或其他Word窗格之间切换 [F8]键:打开Word的选择模式[F12]...

    目录

    Word

    Excel


    Word

    [F1]键:帮助
    [F2]键:移动文字或图形,按回车键确认
    [F4]键:重复上一次的操作
    [F5]键:编辑时的定位
    [F6]键:在文档和任务窗格或其他Word窗格之间切换
    [F8]键:打开Word的选择模式
    [F12]键:打开“另存为”对话框
    [shift+F2]组合键:复制文本
    [shift+F3]组合键:改变字母大小写
    [shift+F4]组合键:重复查找或定位
    [shift+F12]组合键:选择“文件”菜单中的“保存”菜单项
    [shift+F5]组合键:跳转文档中上一次编辑位置
    [shift+←] 组合键:选中光标左侧一个字符
    [shift+→] 组合键:选中光标右侧一个字符
    [shift+↑] 组合键:选中光标当前位置至上一行之间的内容
    [shift+↓] 组合键:选中光标当前位置至下一行之间的内容
    [shift+Ena] 组合键:选中光标所在处至行尾
    [shift+Home] 组合键:选中光标所在处至行首
    [shift+pageup] 组合键:选中光标当前位置至上一屏之间的一行内容
    [Shift+Pagedown] 组合键:选中光标当前位置至下一屏之间的一行内容
    [ctri+F2] 组合键:打印预览
    [ctri+F4] 组合键:关闭窗口
    [ctri+F6] 组合键:在打开的文档之间切换
    [ctri+F12] 组合键:打开“打开”对话框
    [ctri+1] 组合键:单倍行距
    [ctri+2] 组合键:双倍行距
    [ctri+5] 组合键:1.5倍行距
    [ctri+O] 组合键:段前添加一行间距
    [ctri+A] 组合键:全选
    [ctri+B] 组合键:字符变为粗体
    [ctri+C] 组合键:复制
    [ctri+shift+D] 组合键:分散对齐
    [ctri+E] 组合键:段落居中
    [ctri+F] 组合键:查找
    [ctri+G] 组合键:定位
    [ctri+H] 组合键:替换
    [ctri+I] 组合键:字符变为斜体
    [ctri+J] 组合键:两端对齐
    [ctri+K] 组合键:超级连接
    [ctri+L] 组合键:左对齐
    [ctri+N] 组合键:新建文档
    [ctri+M] 组合键:左侧段落缩进
    [ctri+O] 组合键:打开文档
    [ctri+P] 组合键:打印
    [ctri+Q] 组合键:插入点所在行向左移动一个字符
    [ctri+Q] 组合键:取消段落格式
    [ctri+R] 组合键:右对齐
    [ctri+S] 组合键:保存
    [ctri+T] 组合键:创建悬挂缩进
    [ctri+U] 组合键:为字符添加下划线
    [ctri+V] 组合键:粘贴
    [ctri+W] 组合键:
    [ctri+X] 组合键:剪贴
    [ctri+Shift+Z] 组合键:格式清除
    [ctri+ shift] 组合键:输入法转换
    [ctri+F8] 组合键:打开“宏”的对话框
    [ctri+空格] 组合键:中、西文转换
    [ctri+Enter] 组合键:插入分页符
    [ctri+ shift+M] 组合键:取消左侧段落缩进
    [ctri+ shift+F12] 组合键:选择“文件”菜单中的“打印”菜单项
    [ctri+ shift+F] 组合键:改变字体
    [ctri+ shift+P] 组合键:改变字号
    [ctri+ shift+>] 组合键:增大字号
    [ctri+ shift<] 组合键:减小字号
    [ctri+ shift+]] 组合键:逐磅增大字号
    [ctri+ shift+[] 组合键:逐磅减小字号
    [ctri+ shift+C] 组合键:复制格式
    [ctri+ shift+V] 组合键:粘贴格式
    [ctri+ shift+T] 组合键:减小悬挂缩进
    [ctri+ Enter] 组合键:插入分页符
    [ctri+Home] 组合键:插入点移到文档首部
    [ctri+End] 组合键:插入点移到文档尾部
    [ctri+ shift+←] 组合键:将光标移到单词开始处
    [ctri+ shift+→] 组合键:将光标移到单词结尾处
    [ctri+ shift+↑] 组合键:将光标移到段首
    [ctri+ shift+↓] 组合键:将光标移到段尾
    [ctri+ shift+Home] 组合键:将光标移到文档开始处
    [ctri+ shift+Ena]组合键:将光标移到文档结尾处
    [ctri+PGVP] 组合键:将插入点移至上一页窗口顶部
    [ctri+PGDW]组合键:将插入点移至下一页窗口顶部
    [shift+Home]组合键:插入点到行首
    [shift+Ena]组合键:插入点到行尾
    [shift+空格]组合键:半角/全角切换
    [Ctri+左键] 组合键:选中一段文字
    [Ait+左键] 组合键:选中一块文字
    [Ait+Ctri+ Shift+Pagedown]组合键:将光标移到窗口结尾
    [Ait+Ctri+C] 组合键:插入版权符号
    [Ait+Ctri+R]组合键:插入注册商标符号
    [Ait+Ctri+T]组合键:插入商标符号
    [Ait+Ctri+.]组合键:插入省略号
    [Ait+Tab] 组合键:切换任务、窗口
    [Ait+F4] 组合键:关闭程序
    [Ait+空格] 组合键:下拉Word控制菜单
    [Ait+Prntscreen] 组合键:窗口复制。
    按住[Ait]键,可以暂时忽略网格使图片平滑移动。
    按住[Shift]键,依次选取需要对齐的图形,完成若干图形对齐任务。
    按住[Shift]键并单击“打印预览”按扭,可快速打印工作表。
    按[shift+Enter]组合键,可以在当前幻灯片的后面插入一张新幻灯片。
    按[Tab]键,选择下一个单元格;
    按[Shift+ Tab]组合键选择前一个单元格。
    按[Shift]键,再按回车键,就会产生一个换行符。
    如果打开的窗口或窗体角朵,并且把数据库窗口完全挡住了,这时只要按下[F11](也可以按下[Ait+ F11]),数据库窗口将被前置。
    按[Ctri+:]组合键,可以输入当前日期;
    按[Ctri+ shift+:] 组合键,可以输入当前时间。
    选定大块区域,,按[Shift]键后拖动鼠标。
    选定矩形区域,,按[Ait]键后拖动鼠标(大纲视图下无效)。

    Excel

    全部显示
    全部隐藏
    以下列表包含了 Ctrl 组合快捷键、功能键和某些其他常用快捷键,以及它们的功能说明。有关所有可用快捷键及它们的具体用途的更多参考信息,请参阅键盘快捷方式。

    若要打印此主题,请按 Tab 选择“全部显示”,按 Enter,然后按 Ctrl+P。

    注释 如果经常使用的操作没有快捷键,可以通过录制宏来创建快捷键。

    Ctrl 组合快捷键

    按键 说明
    Ctrl+( 取消隐藏选定范围内所有隐藏的行。
    Ctrl+) 取消隐藏选定范围内所有隐藏的列。
    Ctrl+& 将外框应用于选定单元格。
    Ctrl+_ 从选定单元格删除外框。
    Ctrl+~ 应用“常规”数字格式。
    Ctrl+$ 应用带有两位小数的“货币”格式(负数放在括号中)。
    Ctrl+% 应用不带小数位的“百分比”格式。
    Ctrl+^ 应用带有两位小数的“指数”格式。
    Ctrl+# 应用带有日、月和年的“日期”格式。
    Ctrl+@ 应用带有小时和分钟以及 AM 或 PM 的“时间”格式。
    Ctrl+! 应用带有两位小数千位分隔符和减号 (-)(用于负值)的“数值”格式。
    Ctrl+- 显示用于删除选定单元格的“删除”对话框。
    Ctrl+* 选择环绕活动单元格的当前区域(由空白行和空白列围起的数据区域)。
    数据透视表中,它将选择整个数据透视表

    Ctrl+: 输入当前时间。
    Ctrl+; 输入当前日期。
    Ctrl+` 在工作表中切换显示单元格值和公式。
    Ctrl+' 将公式从活动单元格上方的单元格复制到单元格或编辑栏中。
    Ctrl+" 将值从活动单元格上方的单元格复制到单元格或编辑栏中。
    Ctrl++ 显示用于插入空白单元格的“插入”对话框。
    Ctrl+1 显示“单元格格式”对话框。
    Ctrl+2 应用或取消加粗格式设置。
    Ctrl+3 应用或取消倾斜格式设置。
    Ctrl+4 应用或取消下划线。
    Ctrl+5 应用或取消删除线。
    Ctrl+6 在隐藏对象、显示对象和显示对象占位符之间切换。
    Ctrl+7 显示或隐藏“常用”工具栏。
    Ctrl+8 显示或隐藏大纲符号。
    Ctrl+9 隐藏选定的行。
    Ctrl+0 隐藏选定的列。
    Ctrl+A 选择整个工作表。
    如果工作表包含数据,则按 Ctrl+A 将选择当前区域。再次按 Ctrl+A 将选择整个工作表。

    当插入点位于公式中某个函数名称的右边时,则会显示“函数参数”对话框。

    当插入点位于公式中某个函数名称的右边时,按 Ctrl+Shift+A 将会插入参数名称和括号。

    Ctrl+B 应用或取消加粗格式设置。
    Ctrl+C 复制选定的单元格。
    如果连续按两次 Ctrl+C,则会显示 Microsoft Office 剪贴板。

    Ctrl+D 使用“向下填充”命令将选定范围内最顶层单元格的内容和格式复制到下面的单元格中。
    Ctrl+F 显示“查找”对话框。
    按 Shift+F5 也会显示此对话框,而按 Shift+F4 则会重复上一次“查找”操作。

    Ctrl+G 显示“定位”对话框。
    按 F5 也会显示此对话框。

    Ctrl+H 显示“查找和替换”对话框。
    Ctrl+I 应用或取消倾斜格式设置。
    Ctrl+K 为新的超链接显示“插入超链接”对话框,或为选定的现有超链接显示“编辑超链接”对话框。
    Ctrl+L 显示“创建列表”对话框。
    Ctrl+N 创建一个新的空白文件。
    Ctrl+O 显示“打开”对话框以打开或查找文件。
    按 Ctrl+Shift+O 可选择所有包含批注的单元格。

    Ctrl+P 显示“打印”对话框。
    Ctrl+R 使用“向右填充”命令将选定范围最左边单元格的内容和格式复制到右边的单元格中。
    Ctrl+S 使用其当前文件名、位置和文件格式保存活动文件。
    Ctrl+U 应用或取消下划线。
    Ctrl+V 在插入点处插入剪贴板的内容,并替换任何选定内容。只有在剪切或复制了对象、文本或单元格内容后,才能使用此快捷键。
    Ctrl+W 关闭选定的工作簿窗口。
    Ctrl+X 剪切选定的单元格。
    Ctrl+Y 重复上一个命令或操作(如有可能)。
    Ctrl+Z 使用“撤消”命令来撤消上一个命令或删除最后键入的条目。
    显示了自动更正智能标记时,按 Ctrl+Shift+Z 可使用“撤消”或“重复”命令撤消或恢复上一次自动更正操作。

    功能键

    按键 说明
    F1 显示“帮助”任务窗格。
    按 Ctrl+F1 可关闭并重新打开当前任务窗格。

    按 Alt+F1 可创建当前范围中数据的图表。

    按 Alt+Shift+F1 可插入新的工作表。

    F2 编辑活动单元格并将插入点放在单元格内容的结尾。如果禁止在单元格中进行编辑,它也会将插入点移到编辑栏中。
    按 Shift+F2 可编辑单元格批注。

    F3 将定义的名称粘贴到公式中。
    按 Shift+F3 将显示“插入函数”对话框。

    F4 重复上一个命令或操作(如有可能)。
    按 Ctrl+F4 可关闭选定的工作簿窗口。

    F5 显示“定位”对话框。
    按 Ctrl+F5 可恢复选定工作簿窗口的窗口大小。

    F6 切换到已拆分(“窗口”菜单,“拆分”命令)的工作表中的下一个窗格。
    按 Shift+F6 可切换到已拆分的工作表中的上一个窗格。

    如果打开了多个工作簿窗口,则按 Ctrl+F6 可切换到下一个工作簿窗口。

    F7 显示“拼写检查”对话框,以检查活动工作表或选定范围中的拼写。
    如果工作簿窗口未最大化,则按 Ctrl+F7 可对该窗口执行“移动”命令。使用箭头键移动窗口,并在完成时按 Esc。

    F8 打开或关闭扩展模式。在扩展模式中,“EXT”将出现在状态行中,并且按箭头键可扩展选定范围。
    通过按 Shift+F8,您可以使用箭头键将非邻近单元格或范围添加到单元格的选定范围。

    当工作簿未最大化时,按 Ctrl+F8 可执行“大小”命令(在工作簿窗口的“控制”菜单上。

    按 Alt+F8 可显示用于运行、编辑或删除宏的“宏”对话框。

    F9 计算所有打开的工作簿中的所有工作表。
    如果先按 F9 再按 Enter(对于数组公式则按 Ctrl+Shift+Enter),则会计算选定的公式部分,并将选定部分替换为计算出的值。

    按 Shift+F9 可计算活动工作表。

    按 Ctrl+Alt+F9 可计算所有打开的工作簿中的所有工作表,不管它们自上次计算以来是否已更改。

    如果按 Ctrl+Alt+Shift+F9,则会重新检查相关公式,然后计算所有打开的工作簿中的所有单元格,其中包括未标记为需要计算的单元格。

    按 Ctrl+F9 可将工作簿窗口最小化为图标。

    F10 选择菜单栏或同时关闭打开的菜单和子菜单。
    按 Shift+F10 可显示选定项目的快捷菜单。

    按 Alt+Shift+F10 可显示智能标记的菜单或消息。如果存在多个智能标记,按该组合键可切换到下一个智能标记并显示其菜单或消息。

    按 Ctrl+F10 可最大化或还原选定的工作簿窗口。

    F11 创建当前范围内数据的图表。
    按 Shift+F11 可插入一个新工作表。

    按 Alt+F11 将打开 Visual Basic 编辑器,您可以在其中通过使用 Visual Basic for Applications (VBA) 来创建宏。

    按 Alt+Shift+F11 将打开 Microsoft 脚本编辑器,您可以在其中添加文本、编辑 HTML 标记以及修改任何脚本代码。

    F12 显示“另存为”对话框。

    其他有用的快捷键

    按键 说明
    箭头键 在工作表中上移、下移、左移或右移一个单元格。
    按 Ctrl+箭头键可移动到工作表中当前数据区域 (数据区域:包含数据的单元格区域,该区域周围为空白单元格或数据表边框。)的边缘。

    按 Shift+箭头键可将单元格的选定范围扩大一个单元格。

    按 Ctrl+Shift+箭头键可将单元格的选定范围扩展到与活动单元格同一列或同一行中的最后一个非空白单元格。

    当菜单处于可见状态时,按向左键或向右键可选择左边或右边的菜单。当子菜单处于打开状态时,按这些箭头键可在主菜单和子菜单之间切换。

    当菜单或子菜单处于打开状态时,按向下键或向上键可选择下一个或上一个命令。

    在对话框中,按箭头键可在打开的下拉列表中的各个选项之间移动,或在一组选项的各个选项之间移动。

    按 Alt+向下键可打开选定的下拉列表。

    Backspace 在编辑栏中删除左边的一个字符。
    也可清除活动单元格的内容。

    Delete 从选定单元格中删除单元格内容(数据和公式),而不会影响单元格格式或批注。
    在单元格编辑模式下,按该键将会删除插入点右边的字符。

    End 当 Scroll Lock 处于开启状态时,移动到窗口右下角的单元格。
    当菜单或子菜单处于可见状态时,也可选择菜单上的最后一个命令。

    按 Ctrl+End 可移动到工作表上的最后一个单元格,即所使用的最下方一行与所使用的最右边一列的交汇单元格。

    按 Ctrl+Shift+End 可将单元格的选定范围扩展到工作表上所使用的最后一个单元格(右下角)。

    Enter 从单元格或编辑栏中完成单元格输入,并(默认)选择下面的单元格。
    在数据表单中,按该键可移动到下一条记录中的第一个字段。

    打开选定的菜单(按 F10 激活菜单栏),或执行选定命令的操作。

    在对话框中,按该键可执行对话框中默认命令按钮(带有突出轮廓的按钮,通常为“确定”按钮)的操作。

    按 Alt+Enter 可在同一单元格中另起一个新行。

    按 Ctrl+Enter 可使用当前条目填充选定的单元格区域。

    按 Shift+Enter 可完成单元格输入并选择上面的单元格。

    Esc 取消单元格或编辑栏中的输入。
    按该键也可关闭打开的菜单或子菜单、对话框或消息窗口。

    Home 移到工作表中某一行的开头。
    当 Scroll Lock 处于开启状态时,移到窗口左上角的单元格。

    当菜单或子菜单处于可见状态时,选择菜单上的第一个命令。

    按 Ctrl+Home 可移到工作表的开头。

    按 Ctrl+Shift+Home 可将单元格的选定范围扩展到工作表的开头。

    Page Down 在工作表中下移一个屏幕。
    按 Alt+Page Down 可在工作表中向右移动一个屏幕。

    按 Ctrl+Page Down 可移到工作簿中的下一个工作表。

    按 Ctrl+Shift+Page Down 可选择工作簿中的当前和下一个工作表。

    Page Up 在工作表中上移一个屏幕。
    按 Alt+Page Up 可在工作表中向左移动一个屏幕。

    按 Ctrl+Page Up 可移到工作簿中的上一个工作表。

    按 Ctrl+Shift+Page Up 可选择工作簿中的当前和上一个工作表。

    空格键 在对话框中,执行选定按钮的操作,或者选中或清除复选框。
    按 Ctrl+空格键可选择工作表中的整列。

    按 Shift+空格键可选择工作表中的整行。

    按 Ctrl+Shift+空格键可选择整个工作表。

    如果工作表包含数据,则按 Ctrl+Shift+空格键将选择当前区域。再按一次 Ctrl+Shift+空格键将选择整个工作表。
    当某个对象处于选定状态时,按 Ctrl+Shift+空格键可选择工作表上的所有对象。
    按 Alt+空格键可显示 Excel 窗口的“控制”菜单。

    Tab 在工作表中向右移动一个单元格。
    在受保护的工作表中,可在未锁定的单元格之间移动。

    在对话框中,移到下一个选项或选项组。

    按 Shift+Tab 可移到前一个单元格(在工作表中)或前一个选项(在对话框中)。

    在对话框中,按 Ctrl+Tab 可切换到下一个选项卡。

    在对话框中,按 Ctrl+Shift+Tab 可切换到前一个选项卡。

    备注:收集自微软官网

    展开全文
  • Office 2000 Web Components2

    千次阅读 2005-09-23 14:57:00
    高级编程技巧 至此,您已经学会了如何完成一些基础的编程操作,现在让我们来讨论一些更高级的技巧。在第七章的销售分析和报表解决方案中会涉及到许多这些高级技巧,因此现在我只对这些技巧作一些简单的介绍,您可以...
  • 译者说明:欢迎大家访问我的Blog: http://daidaoke.donews.net/daidaoke/ 我的Email:tangtaike@163.com  如需转载,请事先通知。第二章第三节 编程模型要点 现在总结一下我们对电子表格组件的介绍,我将讲述...
  • 译者说明:欢迎访问我的Blog: http://blog.csdn.net/daidaoke2001/译文中的错误或不当之处望不吝指出,这也是我坚持翻译工作的最大动力。...高级编程技巧 至此,您已经学会了如何完成一些基础的编程操作,现在让我们来...
  • Latex:入门教程

    万次阅读 多人点赞 2018-04-08 20:48:56
    http://blog.csdn.net/pipisorry/article/details/54571521总的来说,LaTex是一套排版系统,与word那种所见即所得对排版方式不太,用LaTex排版更像是写程序一样,将想要的排版效果用指令写出来,再通过LaTex编译成...
  • 本例环境基于ubuntu18.04,python3,wps。所有本例用到的类库都使用pip3来安装。首先安装pip3。 sudo apt install pip3 1. python处理word文档 安装处理word文档用到的python类库python-docx。...
  • 将外框应用于选定单元格。 Ctrl+_ 从选定单元格删除外框。 Ctrl+~ 应用“常规”数字格式。 Ctrl+$ 应用带有两位小数的“货币”格式(负数放在括号中)。 Ctrl+% 应用不带小数位的“百分比”格式。 Ctrl+^ 应用...
  • Excel 快捷键和功能键

    2019-09-06 09:45:09
    End 当 Scroll Lock 处于开启状态时,移动到窗口右下角的单元格。 Home 移到工作表中某一行的开头。 Page Down 在工作表中下移一个屏幕。 Page Up 在工作表中上移一个屏幕。 Tab 选择“全部显示”,按 Enter,...
  • 第二章第三节 编程模型要点  现在总结一下我们对电子表格组件的介绍,我将讲述(电子表格)控件编程模型的各个要点,以便您了解如何运用这个控件,以及当您需要编写脚本来实现不同的功能时该如何去做。...
  • word编辑技巧

    千次阅读 2010-05-10 18:05:00
    1.2 编辑排版技巧(1)1.2.1 页面设置快速进行调整要对Word进行页面调整,通常大家采用的方法是选择“文件→页面设置”选项的方法进行,请问有没有更快速方便的方法呢?答:有,如果要进行“页面设置”,只需用鼠标...
  • Word XPWord XP 中目录的编制方法 1.单击要插入目录的位置。 2.指向"插入"菜单上的"引用",再单击"索引和目录"。 3.... 4.... 5.... 如果目前未使用大纲级别或内置样式,请进行下列操作之一: 用大纲级别创建目录 1....
  • 【转】用VB操作Excel详解

    千次阅读 2011-10-03 11:35:04
    用VB操作Excel详解 一、 VB读写EXCEL表: VB本身提自动化功能可以读写EXCEL表,其方法如下: 1、在工程中引用MicrosoftExcel 类型库: 从"工程"菜单中选择"引用"栏;选择Microsoft Excel 9.0 Object Library
  • Delphi与Word之间的融合技术(下)zt

    千次阅读 2008-10-29 10:03:00
    Delphi与Ole,Word,Excel,查找与替换等 Delphi与Word之间的融合技术(下)zt来自:yzhshi, 时间:2002-2-2 14:24:00, ID:902680前面我就Delphi中调用Word写了一些,比较注重于具体实现,对于研究的方法则说的比较...
  • Word技巧_听雨轩

    千次阅读 2008-04-19 09:29:00
    Word技巧2008-04-15 12:08236491328 Word技巧 把文字替换成图片: 首先把图片复制到 剪贴板中,然后打开替换对话框,在“查找内容”框中输入将被替换的文字,接着在 “替换为”框中输入“^c”(注意:输入的一定...
  • VB操作EXCEL表的常用方法

    万次阅读 2019-01-07 17:39:12
    VB是常用的应用软件开发工具之一,由于VB的报表功能有限,而且一但报表格式发生变化,就得相应修改程序,给应用软件的维护工作带来极大的不便。因此有很多程序员现在已经充分利用EXECL的强大报表功来实现报表功能。...
  • Windows7 键盘快捷键大全 快捷键的好处就不说了,毕竟能大大提供使用操作系统的效率, 例如想打开运行窗口,就直接Win键+R键,再输入cmd回车的话就可以直接打开命令行窗口等等. 一、Win键相关的快捷键 ...
  • EXCEL快捷键大全

    2009-11-08 10:05:00
    Ctrl+& 将外框应用于选定单元格。 Ctrl+_ 从选定单元格删除外框。 Ctrl+~ 应用“常规”数字格式。 Ctrl+$ 应用带有两位小数的“货币”格式(负数放在括号中)。 Ctrl+% 应用不带小数位的“百分比”格式。 Ctrl+^ ...
1 2 3 4 5 6
收藏数 112
精华内容 44
关键字:

pageoffice 禁止修改单元格