excel
excel剪切、复制和粘贴操作,使它们不会破坏已设置的单元格格式
基于表格的用户接口的最大问题是:由于采用Excel黙认方式来处理数据的剪切、复制、粘贴以及拖放,而数据输入表中大多数用于编辑的单元格都被指定了特定样式、数据验证或条件格式,因此Excel默认的复制/粘贴会覆盖掉被粘贴单元格中的各种格式,同时Excel默认的剪切方式会将被剪切单元格的格式设置为“通用样式”。Excel的拖放功能也与剪切/复制类似,同样会破坏单元格中的格式。 为避免发生上述情况,可以屏蔽Excel的拖放功能,并编写自已的剪切、复制和粘贴程序。 Dim mbCut As Boolean Dim mrngSource As Range‘初始化单元格的复制-粘贴 Public Sub InitCutCopyPaste() Application.OnKey “^X”, “DoCut” Application.OnKey “^x”, “DoCut” Application.OnKey “+{DEL}”, “DoCut”Application.OnKey “^C”, “DoCopy” Application.OnKey “^c”, “DoCopy” Application.OnKey “^{INSERT}”, “DoCopy”Application.OnKey “^V”, “DoPaste” Application.OnKey “^v”, “DoPaste” Application.OnKey “+{INSERT}”, “DoPaste”Application.OnKey “{ENTER}”, “DoPaste” Application.OnKey “~”,”DoPaste”‘关闭拖放操作 Application.CellDragAndDrop = False End Sub‘处理剪切单元格 Public Sub DoCut() If TypeOf Selection Is Range Then mbCut = True Set mrngSource = Selection Selection.Copy Else Set mrngSource = Nothing Selection.Cut End If End Sub‘处理复制单元格 Public Sub DoCopy() If TypeOf Selection Is Range Then mbCut = False Set mrngSource = Selection Else Set mrngSource = Nothing End IfSelection.Copy End Sub‘处理粘贴单元格 Public Sub DoPaste() If Application.CutCopyMode And Not mrngSource Is Nothing Then Selection.PasteSpecial xlValues If mbCut Then mrngSource.ClearContents End If
excel表格自定义功能区
自Office 2007版本开始,Microsoft对Office界面进行了彻底的改造,将原来的菜单和工具栏改成了功能区,文件格式也进行了改变。现在的Office文件,实际上是一个压缩文件,其中包括了创建文档的XML文件。这样,我们能够通过修改其XML文件结构,从而创建自已的功能区。将文件修改为压缩文件首先,需要修改Excel文件的扩展名为.zip,例如将文件MyCustomRibbon.xlsm修改为MyCustomRibbon.zip或者MyCustomRibbon.xlsm.zip,此时,会弹出一个如下图1所示的警告信息框,单击“是”。图1双击打开这个压缩文件,可以看到如下图2所示的文件夹和文件,我们需要在其中添加一些文件夹和文件,以及修改一些文件来自定义功能区。图2创建自定义功能区在压缩文件外,创建一个新文件夹,我们将其命名为customUI。在该文件夹中,创建一个新的名为my_customUI.xml的文件。我们将在这个文件中创建XML,控制自定义功能区的界面外观。
excel图表如何记录指定单元格每次修改的时间?
Q:我想要在用户修改工作表指定单元格的内容时,在另一工作表中记录修改的时间。例如,在工作表Sheet1的单元格B2中,每次用户将该单元格值修改为某一大于0的数值时,则在工作表LogB2中记录下其修改的时间。具体地说,如果在2019年10月24日19时30分30秒,用户将单元格B2中的值修改为280,那么在工作表LogB2中记录下时间2019-10-24 19:30:30;如果在2019年10月25日8时10分15秒又将单元格B2中的值修改为100,那么工作表LogB2中增加一条时间记录2019-10-25 8:10:15。A:这可以使用工作表事件来完成。打开VBE,双击工作表Sheet1对象模块,输入代码:Private Sub Worksheet_Change(ByVal Target As Range)Dim rngInput As RangeDim rngLog As Range‘要记录其修改时间的单元格Set rngInput = Range(“B2”)‘确定单元格是目标单元格
excel使用VBA获取能够打开指定文件的EXE程序
这是一个很有趣的技巧!可以通过你给定的文件名来获取计算机中可以打开该文件的EXE程序,即可执行程序。有时候,我们可能真的需要找到可以打开指定文件名的EXE程序,然后打开它。或者,要看看计算机中是否有可以打开指定文件名的EXE程序,然后好决定做下一步的操作。实现获取计算机中可以打开指定文件的EXE程序的代码:‘API声明Declare Function FindExecutable Lib”shell32.dll” Alias “FindExecutableA” _(ByVal lpFile As String, ByVal lpDirectory As String, ByVal lpResult AsString) As LongFunction ExePath(lpFile As String) As StringDim lpDirectory As StringDim strExePath As StringDim lrc As LonglpDirectory = “\”
如何让VBA让用户仅能在指定单元格或单元格区域中输入数字
通常,我们可以使用Excel的“数据验证”功能来设置指定单元格或单元格区域仅能输入指定范围的整数或者小数,如下图1所示。图1设置好后,仅能在单元格C2中输入介于1至100之间的整数,如下图2所示。图2其实,使用VBA也能够实现上述功能且更灵活和强大。例如,我们想要限定用户在单元格区域B2:D6中仅能输入数字。在VBE中,双击单元格区域所在的工作表模块,输入下面的代码:Private Sub Worksheet_Change(ByVal Target As Range)Dim rng As RangeApplication.EnableEvents = False
excel图表给单元格添加边框的快捷键
Excel中有很多快捷键,能够让我们提高工作效率。其实,也有给单元格添加边框的快捷键,只是稍微复杂一些。在应用这些快捷键之前,首先要打开“设置单元格格式”对话框。按下Ctrl+1组合键,打开“设置单元格格式”对话框,选取“边框”选项卡,如下图1所示。图1此时,可以按下面的快捷键来添加单元格边框。Alt+t:添加或取消上边框Alt+b:添加或取消下边框Alt+l:添加或取消左边框Alt+r:添加或取消右边框Alt+d:添加或取消下斜对角线
为何双击Excel文件时报错而不是直接打开?
Q:昨天都好好的,不知道动了什么,今天双击Excel文件时不能打开了,老是报错,如图1所示,非要先启动Excel程序,然后单击“文件——打开”,导航到要打开的文件才能正常打开。为什么双击Excel文件不能直接打开了,如何解决呢?图1A:这可能是因为在操作时或者运行VBA程序时不小心更改了Excel设置或者系统设置,解决办法很简单,一般有如下两种。方法1:Excel选项设置单击“文件——选项”,打开“Excel选项”对话框,选择“高级”选项卡,找到“常规”下的“忽略使用动态数据交换(DDE)的其他应用程序”,取消其前面的复选,如下图2所示。图2设置好后,双击Excel文件,可以直接打开了。方法2:修改注册表
excel图表使用VBA创建进度条
当你的程序执行时间较长时,使用一个进度条来展示程序执行的状态是非常必要的。进度条设计打开VBE,插入一个用户窗体。1.在属性窗口中,将该用户窗体命名为urfProgress。2.设置其ShowModal属性为False,这样在该用户窗体处于打开状态时仍能继续运行程序。3.调整该用户窗体为合适的大小(高110*宽240)。进行适当设置后,目前表示进度条的用户窗体如下图1所示。图1在用户窗体中插入一个标签控件,用于显示指示程序状态的文本。在属性窗口将其命名为lblCaption,调整该标签的大小以便有足够的空间来容纳将要显示的文本,这里设置其Width属性为174,设置其Caption属性为空(即没有文本)。此时,表示进度条的用户窗体如下图2所示。
excel图表:一个快速修改公式的技巧
当制作好工作表后,由于某种原因,想要修改工作表中的公式,例如想将公式中的求和改为求平均,此时,如果只有少量的几个公式,直接一个个修改就可以了,或者公式在同一行或同一列,直接拖放也可以。但是,如果存在大量的公式,且公式分散在工作表的不同单元格,那么怎样快速修改这些公式呢?使用Excel的“查找与替换”功能可以快速完成,如下图1所示。图1我们知道,按Ctrl+`组合键,可以显示工作表公式视图,如下图2所示。图2单击功能区选项卡“开始——查找和选择——替换”命令,在“查找和替换”对话框中输入和设置如下图3所示。图3
标识并使用VBA代码识别特定的工作簿
有时候,需要使用代码确认某个工作簿是否是特定模板创建,或者是否属于某个应用程序,如果是就打开并操作该工作簿或应用程序。如何实现呢?一种常用的方法是对工作簿文件添加自定义的文档属性,这样让代码在不打开工作簿的情况下判断是否是想要的工作簿。为工作簿添加自定义文档属性单击“文件——信息——属性——高级属性”,打开工作簿的“属性”对话框。选取“自定义”选项卡,在名称文本框中输入属性名称,示例中是“MyTestBook”,在类型下拉列表中选择“是或否”,选取取值选项按钮中的“是”,单击“添加”按钮,如下图1所示,为该工作簿添加自定义文档属性。图1安装工具库DSOFile.dll我们要使用名为DSOFile.dll的COM对象从关闭的工作簿中读取文档属性,因此,需要下载并安装该DLL。可以在Microsoft的网站上下载:下载后,双击安装。安装完毕后,选择VBE的菜单“工具——引用”命令,在“引用”对话框中找到并选取“DSO OLE Document Properties Reader 2.1”前的复选框,单击“确定”,如下图2所示。