当前位置:主页 > Office办公 > Excel专区

最新发布

excel改变鼠标指针形状的VBA代码
excel改变鼠标指针形状的VBA代码

可以通过设置Application.Cursor属性改变鼠标指针形状。如在XP中下面的语句将鼠标指针的形状改变为沙漏状,这种形状的鼠标指针表示系统比较繁忙。Application.Cursor = xlWait改为I型指针:改变鼠标指针形状后,Excel不会自动恢复,用下面的语句恢复默认指针形状:Application.Cursor = xlDefaultApplication.Cursor = xlIBeam

341 次浏览
excel打开和关闭光驱的宏代码
excel打开和关闭光驱的宏代码

用下面的宏代码可以打开或关闭电脑中默认的光驱。方法是:1.按Alt+F11打开VBA编辑器。2.在代码窗口中输入下列代码:Private Declare Sub mciSendStringA Lib "winmm.dll" (ByVal lpstrCommand As String, _ByVal lpstrReturnString As Any, ByVal uReturnLength As Long, _ByVal hwndCallback As Long)Sub OpenDefaultCDDVD()‘打开光驱mciSendStringA "Set CDAudio Door Open", 0&, 0, 0End SubSub CloseDefaultCDDVD()‘关闭光驱mciSendStringA "Set CDAudio Door Closed", 0&, 0, 0End Sub

111 次浏览
excel利用VBA判断工作表是否存在
excel利用VBA判断工作表是否存在

下面的VBA代码可以判断当前Excel工作簿中的某个工作表是否存在,如果指定的工作表不存在,则以指定的工作表名新建一个工作表,如果指定的工作表已存在,则给出一个提示,并激活该工作表。下例中指定的工作表标签为“一月”,可根据实际进行修改。Sub IsSheetExist()Dim ws As WorksheetDim sName As StringsName = "一月" ‘指定工作表On Error Resume NextSet ws = Sheets(sName)If ws Is Nothing Then ‘指定的工作表不存在Sheets.Add.Name = sNameElse ‘指定的工作表已存在MsgBox "“" & sName & "”工作表已存在。"ws.ActivateEnd IfEnd Sub

198 次浏览
excel利用VBA互换两个单元格或区域中的数据
excel利用VBA互换两个单元格或区域中的数据

有时需要在Excel工作表中互换两个区域中的数据,如果区域相邻可以直接用拖动鼠标并按住Shift键的方法进行互换。而当两区域不相邻且两个区域中的数据量较大时用VBA则较为快捷。例如在互换两列时可以直接单击工作表上方的列标题选择整列,然后执行代码互换数据。在工作表中选择两个形状相同的、无公共部分的区域,然后执行下面的代码,即可互换两区域中的数据。Sub TwoAreasSwap()Dim TheArea1, TheArea2 As VariantIf Selection.Areas.Count <> 2 ThenMsgBox "请选择两个区域!"Exit SubElseIf Selection.Areas(1).Cells.Count <> Selection.Areas(2).Cells.Count Or _Selection.Areas(1).Rows.Count <> Selection.Areas(2).Rows.Count ThenMsgBox "请选择两个形状相同的区域!"Exit SubElseTheArea1 = Selection.Areas(1).CellsTheArea2 = Selection.Areas(2).CellsSelection.Areas(1).Cells = TheArea2Selection.Areas(2).Cells = TheArea1End IfEnd Sub

131 次浏览
exce利用自定义函数去掉字符串中的数字
exce利用自定义函数去掉字符串中的数字

如果要去掉某个字符串中的所有数字,例如将一个字符串“Excel123”去掉数字后变为“Excel”,可以用自定义函数来实现。按Alt+F11打开VBA编辑器,单击菜单“插入→模块”,在右侧的代码窗口中输入自定义函数:Function RemoveNums(theString As String)Dim eachChar, Temp As StringDim i As IntegerTemp = ""For i = 1 To Len(theString)eachChar = Mid(theString, i, 1)If Asc(eachChar) < 48 Or Asc(eachChar) > 57 ThenTemp = Temp & eachCharEnd IfNextRemoveNums = TempEnd Function假如包含数字的字符串在A1单元格,在B1单元格中输入=RemoveNums(A1)即可返回一个去掉数字后的字符串,如果字符串全部由数字组成,则返回空字符串。

114 次浏览
利用excel自定义函数显示单元格内的公式
利用excel自定义函数显示单元格内的公式

在Excel中选择某个单元格后,在编辑栏中会显示单元格内的公式,但编辑栏内不可能同时显示多个单元格中的公式。反复按快捷键Ctrl+`(“`”位于数字键“1”的左侧),可以切换显示工作表中的所有公式,但无法同时显示公式的计算结果和公式本身。复制某个单元格内的公式,然后将其粘贴到其他单元格中,并在“=”号前添加一个英文单引号,可以以文本形式显示该公式,但该方法所显示的公式不能随公式的改变而改变,另外批量操作也稍显繁琐。而用下面的一个简单自定义函数,不仅可以在单元格中显示其他单元格内的公式,而且还能随公式的改变而自动改变,这样就可以快速同时显示公式的计算结果和公式了。步骤如下:1.按Alt+F11,打开VBA编辑器。2.单击菜单“插入→模块”,在代码窗口中粘贴代码:Function ShowFormula(cell As Range)ShowFormula = cell.FormulaEnd Function3.返回Excel工作表界面。假如包含公式的单元格在B2中,在C2输入公式:=ShowFormula(B2)即可显示B2单元格中的公式,然后用填充的方法显示其他单元格内的公式。

115 次浏览
利用excel自定义函数去掉字符串中的重复字符
利用excel自定义函数去掉字符串中的重复字符

如果要在Excel中将单元格内字符串中的重复字符去掉,重复的字符仅保留一个,如将字符串“1232345667”变成“1234567”,可以用自定义函数实现。 步骤如下:1.按Alt+F11,打开VBA编辑器。2.单击菜单“插入→模块”,在代码窗口中粘贴代码:Function RemoveDupChar(theString As String) As StringDim i As IntegerFor i = 1 To Len(theString)If InStr(RemoveDupChar, Mid(theString, i, 1)) = 0 And _Mid(theString, i, 1) <> " " Then _RemoveDupChar = RemoveDupChar & Mid(theString, i, 1)NextEnd Function3.返回Excel工作表界面。假如字符串在A1单元中,在B1单元格中输入公式:=RemoveDupChar(A1)该自定义函数还可以将多个单元格中的字符串合并后去重复,如A6单元格为“12345”,A7单元格为“23456”,在B6单元格输入公式:

177 次浏览
利用VBA获取Excel最近使用的工作簿列表
利用VBA获取Excel最近使用的工作簿列表

下面的VBA代码可以获取Excel中最近使用的工作簿的完整路径和名称,并将其放到代码所在工作表的A列中。在Excel 2007和Excel 2010中,如果通过“Office按钮(或“文件”选项卡)→Excel选项→高级”设置显示“最近使用的文档”数量大于“0”,该代码可以显示最近使用的最多50个工作簿名称。而对于Excel 2003,A列中显示的工作簿名称数量与“文件”菜单底部所显示的最近使用文件数量相同。按Alt+F11,打开VBA编辑器,在右侧代码窗口中输入下列代码:Sub GetMRUList()On Error Resume NextDim i, MRUNum As IntegerMRUNum = Application.RecentFiles.MaximumApplication.RecentFiles.Maximum = 50Range("A1:A50").ClearFor i = 1 To 50Cells(i, 1) = Application.RecentFiles(i).PathNext iApplication.RecentFiles.Maximum = MRUNumEnd Sub运行代码,即可在A列中显示最近使用的工作簿列表。

129 次浏览
excel保存工作簿时提醒指定单元格不能为空解决方案
excel保存工作簿时提醒指定单元格不能为空解决方案

在工作中有时需要把设计好的电子表格给其他用户填写,表格中的一些单元格为必填项。虽然可以通过设置颜色、批注等方式提醒用户,但仍有一些用户会忘记填写。这时可以用通过下面的宏代码,当用户在保存工作簿时进行提醒,如果指定的单元格为空则不能保存工作簿。假如工作簿中“Sheet1”表的E6单元格为必填,步骤如下:1.按Alt+F11打开VBA编辑器,在“工程”窗口中双击“ThisWorkbook”。2.在代码窗口中输入下列代码:Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean)If Worksheets("Sheet1").Range("e6") = "" ThenMsgBox "Sheet1表的E6单元格不能为空!", , "提醒"Worksheets("Sheet1").ActivateActiveSheet.Range("e6").SelectCancel = TrueEnd IfEnd Sub当Sheet1表的E6单元格为空时,无论用哪种方式(如另存为、快捷键等)保存工作簿,Excel会弹出一个对话框提醒用户并跳转到指定的单元格。

139 次浏览
如何快速将多个excel工作表批量另存为单独的工作簿
如何快速将多个excel工作表批量另存为单独的工作簿

有时会遇到这种情况,某个Excel工作簿中包含许多工作表,需要把其中的某个工作表发送给其他用户,或者将某几个工作表发送给不同的用户,通常的做法是将这些工作表移动或复制到新工作簿中,保存后再发送给他们。当工作表的数量较多时,逐一手动操作显得有些繁琐,这时用下面的VBA代码就非常方便了,方法如下:按Alt+F11,打开VBA编辑器,在代码窗口中粘贴下列代码:Sub SaveSheetAsWorkbook()Dim theName As StringOn Error GoTo Line1For Each sht In ActiveWindow.SelectedSheetssht.CopytheName = ThisWorkbook.Path & ThisWorkbook.Name & "_" & sht.Name & ".xls"ActiveWorkbook.SaveAs Filename:=theName, FileFormat:=xlNormalActiveWindow.CloseNextLine1:End Sub关闭VBA编辑器,返回Excel界面,选择需要单独保存为工作簿的工作表,如果要选择多个工作表,可按Ctrl键或Shift键进行选择,然后按Alt+F8打开“宏”对话框,选择“SaveSheetAsWorkbook”宏执行即可。上述代码将每个所选的工作表单独保存为一个工作簿,存放位置与原工作簿相同,名称为“原工作簿名称_工作表名称.xls”。如果是在新建且未保存的工作簿中运行代码,Excel会将新生成的工作簿保存到默认的文件位置,如“我的文档”。

137 次浏览
共计27343条记录 上一页 1.. 280 281 282 283 284 285 286 ..2735 下一页