Sub My_Select
Selection.CurrentRegion.Select End sub
删除当前单元格中数据的前后空格。 sub my_trim
Trim(ActiveCell.Value) end sub 使单元格位移 sub my_offset
ActiveCell.Offset(0, 1).Select'当前单元格向左移动一格 ActiveCell.Offset(0, -1).Select'当前单元格向右移动一格 ActiveCell.Offset(1 , 0).Select'当前单元格向下移动一格 ActiveCell.Offset(-1 , 0).Select'当前单元格向上移动一格 end sub
如果上述程序产生错误那是因为单元格不能移动,为了解除上述错误,我们可以往 sub my_offset 之下加一段代码 on error resume next
注意以下代码都不再添加 sub ―代码名称‖ 和end sub请自己添加! 给当前单元格赋值:
ActiveCell.Value = \你好!!!\给特定单元格加入一段代码:
例如:在A1单元格中插入\HELLO\Range(\
又如:你现在的工作簿在sheet1上,你要往sheet2的A1单元格中插入\HELLO\1.sheets(\range(\
或2.Sheets(\说明:
1.sheet2被打开,然后在将―HELLO\放入到A1单元格中。 2.sheet2不被打开,将―HELLO\放入到A1单元格中。 隐藏工作表
'隐藏SHEET1这张工作表
sheets(\ '显示SHEET1这张工作表 sheets(\
有时候我们想把所有的EXCEL中的SHEET都打印预览,请使用该段代码,它将在你现有的工作簿中循环,直到最后一个工作簿结束循环预览。 Dim my As Worksheet For Each my In Worksheets my.PrintPreview Next my
得到当前单元格的地址 msgbox ActiveCell.Address 得到当前日期及时间
msgbox date & chr(13) & time 保护工作簿
ActiveSheet.Protect
取消保护工作簿 ActiveSheet.Unprotect 给当前工作簿改名为 \ActiveSheet.Name = \打开一个应用程序
AppActivate (Shell(\增加一个工作簿 Worksheets.Add 删除当前工作簿 activesheet.delete 打开一个文件
Workbooks.Open FileName:=\关闭当前工作簿 ActiveWindow.Close 当前单元格定为:左对齐
Selection.HorizontalAlignment = xlLeft 当前单元格定为:中心对齐
Selection.HorizontalAlignment = xlCenter 当前单元格定为:右对齐
Selection.HorizontalAlignment = xlRight 当前单元格为百分号风格 Selection.Style = \当前单元格字体为粗体 Selection.Font.Bold = True 当前单元格字体为斜体 Selection.Font.Italic = True 当前单元格字体为宋体20号字 With Selection.Font .Name = \宋体\.Size = 20 End With With 语句 With 对象 .描述 End With
让你的机器发出响声 BEEP
清除单元格中所有文字、批注、格式、所有的东西! ActiveCell.Clear
测试选择状态的单元格的行数 MsgBox Selection.Rows.Count 测试选择状态的单元格的列数 MsgBox Selection.Columns.Count 测试选择状态的单元格的地址 Selection.Address 让所有的错误不再发生
ON ERROR RESUME NEXT 产生错误时让错误转到另一个地方 on error goto l 'code l: 'code 删除一个文件 kill \定制自己的状态栏
Application.StatusBar = \现在时刻: \恢复自己的状态栏
Application.StatusBar = false 在运行期执行一个宏
Application.Run macro:=\滚动窗口到a1的位置 ActiveWindow.ScrollRow = 1 ActiveWindow.ScrollColumn = 1 定制系统日期 Dim MyDate, MyDay MyDate = #12/12/69# MyDay = Day(MyDate) 今天的年限
Dim MyDate, MyYear MyDate = Date MyYear = Year(MyDate) MsgBox MyYear
产生一个inputbox<输入框>
InputBox (\得到一个文件名: Dim kk As String
kk = Application.GetOpenFilename(\提示:请打开一个EXCEL文件:\msgbox kk
打开zoom显示比例对话框
Application.Dialogs(xlDialogZoom).Show 激活字体对话框
Application.Dialogs(xlDialogActiveCellFont).Show 打开另存对话框 Dim kk As String
kk = Application.GetSaveAsFilename(\Workbooks.Open kk
此段代码寻找字符串中特定字符的位置,需要建立一个窗体,并在窗体中,放入TEXTBOX1,TEXTBOX2和TEXTBOX3(3个文本框)及COMMANDBUTTON1(按钮) Private Sub CommandButton1_Click() a = TextBox1.Text b = TextBox2.Text aa = Len(a)
i = 1
Dim YY As String If b = \Do
If InStr(i, a, b, vbTextCompare) = 0 Then Exit Do kk = InStr(i, a, b, vbTextCompare) YY = YY & CStr(kk) & \i = kk + 1
Loop While aa >= i TextBox3.Text = YY End Sub
ActiveX控件在Excel97中的运用
Excel97在工作表或图表上可使用ActiveX控件,根据我使用的体会,在工作上处理控件时,必须注意和了解如下事项: (一)用Excel5.0/95工作簿文件格式保存Excel97工作簿时,将选择ActiveX控件信息。当用户通过双击鼠标来编辑内嵌在其它应用程序文档中的Excel97工作簿时,该工作簿上的控件将不会正常工作。如果用户是通过用右键单击工作簿,然后选中快捷菜单上的―打开‖命令来编辑工作簿的话,工作簿上的控件就能正常工作了。
(二)当ActiveX控件处于激活状态时,将禁用某些MicrosoftExcelVisualBasic方法和属性。例如,当某一控件激活时,就不能使用Sort方法,故下述按钮单击事件处理过程中的代码将失败(因为用户单击按钮后,该按钮就处于激活状态)。 PrivateSubCommandButton1?Click Range(″a1:a10″)?SortKey1:=Range(″a1″) EndSub
解决办法是通过选激活工作表上其它元素的方法来绕过这种问题。例如,可用下列代码对单元格区域排序: PrivateSubCommandButton1?Click Range(″a1″)?Activate
Range(″a1:a10″)?SortKey1:=Range(″a1″) CommandButton1?Activate End Sub
(三)在MicrosoftExcel中,用OLEObjects集合中的OLEObject对象代表ActiveX控件。如果要用编程的方式向工作表添加ActiveX控件,可用OLEObjects集合的Add方法。例如向第一张工作表添加命令按钮。 Worksheets(1)?OLEObjects?Add″Forms?CommandButton?1″,_ Left:=10,Top:=10,Height:=20,Width:=100
因为ActiveX控件也可用OLEObjects集合中的OLEObject对象代表,所以也可用该集合中的对象来设置控件的属性。例如要设置控件―CommandBotton1‖的―左边位置‖属性。 Worksheets(1)?OLEObjects(″CommandButton1″)?Left=10
那些不属于OLEObject对象属性的控件属性,可通过由Object属性返回的实际控件对象来设置。例如要设置控件―CommandButton1‖的标题。
Worksheets(1)?OLEObjects(″CommandButton1″)? Object?Caption=″runme″
因为所有的OLE对象也是Shapes集合的成员,所以也可用该集合设置若干控件的属性。例如要对齐第一张工作表上所有控件的左边框。
ForEachsInWorksheets(1)?Shapes
Ifs?Type=msoOLEControlObjectThens?Left=10 Next
请注意,当在控件所在工作表的类模块之外使用控件的名称时,必须用工作表的名称限定该控件的名称。在工作表上ActiveX控件的事件处理过程中,Me关键字所指向的是工作表,而非控件 65、在Excel中利用VBA创建多级选单
Excel是我们常用的报表处理软件之一,对于大多数人来说只是使用它进行打印报表,没有注意其他功能,其实利用Excel内嵌的 VBA 语言完全可以快速开发出自己企业的应用系统来,而且应用系统界面与其它专业编程语言相当相似。下面笔者简单通过一个实例说明如何利用VBA创建多级选单。
首先,我们对Excel中两个重要的内置函数auto_open() 和 auto_close()作一简单说明。
auto_open() :在打开工作簿时系统将自动执行该函数,因此我们可以在该函数中调用自己应用程序的选单函数以及其它需要初始化设置的函数及宏语句;
auto_close():在关闭工作簿时系统将自动执行该函数。所以我们需要在该函数中放置删除用户自定义选单语句,否则只有退出Excel才能恢复EXCEL的系统选单。
在以下语句中,我们定义了选单设置函数 OpenMyMenu(),用于设置多级选单,其他有关说明见程序内注释,详细代码如下:
Sub OpenMyMenu() ′自定义多级选单函数 On Error Resume Next ′忽略错误
MenuBars(\删除自定义选单 MenuBars.Add (\自定义选单项 Sheets(\
MenuBars(\金融\′增加第一个选单项―金融‖
′以下三句为在―金融‖选单下增加―银行法、货币政策和条例‖三项选单项
MenuBars(\金融\银行法\银行法\MenuBars(\金融\货币政策\货币政策\MenuBars(\金融\条例\条例\′以下为创建如图所示的多级选单
MenuBars(\经济\建立选单项―经济‖ ′以下三句为在―经济‖选单下增加―农业、工业和第三产业‖三项选单项
MenuBars(\经济\农业\农业\MenuBars(\经济\工业\工业\MenuBars(\经济\第三产业\′以下三句为在―第三产业‖选单下增加―概况、范畴‖二项选单项和―饮食服务业‖子选单
MenuBars(\经济\第三产业\概况\概况\MenuBars(\经济\第三产业\范畴\范畴\MenuBars(\经济\第三产业\饮食服务业\′以下二句为在―饮食服务业‖选单下增加―酒店1、酒店2‖二项选单项
MenuBars(\经济\tems(\第三产业\饮食服务业\Caption:=\酒店1\酒店1\
MenuBars(\经济\tems(\第三产业\饮食服务业\Caption:=\酒店2\酒店2\
MenuBars(\MyMenu\激活自定义选单 End Sub
Sub auto_open() ′系统自动打开运行宏 OpenMyMenu ′调用用户选单函数 End Sub
Sub auto_close() ′系统自动关闭运行宏 On Error Resume Next ′忽略错误
MenuBars(\删除自定义选单 End Sub
读者可以在自己的工作簿选单―工具‖中的―宏‖下,创建以上三个函数并将以上函数语句拷贝到其中即可运行。