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

最新发布

excel用自定义函数获取单元格注释
excel用自定义函数获取单元格注释

我们可以用一个自定义函数来提取单元格注释。方法如下:1.按Alt+F11,打开VBA编辑器。2.单击菜单“插入→模块”,在右边的代码窗口中输入代码:Function GetCommentText(rCommentCell As Range)Dim strGotIt As StringOn Error Resume NextstrGotIt = WorksheetFunction.Clean(rCommentCell.Comment.Text)GetCommentText = strGotItOn Error GoTo 0End Function3.关闭VBA编辑器。在单元格中输入公式:=GetCommentText(B4)将在当前单元格中返回B4单元格中的注释。

117 次浏览
excel批量提取超链接中的地址
excel批量提取超链接中的地址

如果Excel表格单元格中包含有许多用文本形式显示的超链接,如“给我发邮件”、“访问我的网站”等,要逐一查看所有超链接的地址,用手工的方法显得太繁琐,我们可以用自定义函数来批量提取这些超链接中的地址,将下列代码插入到标准模块中: Function GetURL(rng As Range) As StringOn Error Resume NextGetURL = rng.Hyperlinks(1).AddressEnd Function使用方法是在单元格中输入公式,假如单元格D6中含有超链接:=geturl(D6)还可以使用下面的代码将工作表中的所有超链接地址全部显示出来,运行代码前先备份工作簿,因为它会在含有超链接的单元格的右侧显示其地址,有可能会破坏工作表结构。Sub ExtractHL()Dim HL As HyperlinkFor Each HL In ActiveSheet.HyperlinksHL.Range.Offset(0, 1).Value = HL.AddressNextEnd Sub

203 次浏览
避免excel工作表函数在VBA中产生运行时错误
避免excel工作表函数在VBA中产生运行时错误

大家知道大多数的Excel工作表函数可以用在VBA中,通过下面的方法来调用,例如对A1:A10单元格求和:Sub Sum1()MsgBox WorksheetFunction.Sum(Sheet1.Range("A1:A10"))End Sub或:Sub Sum2()MsgBox Application.Sum(Sheet1.Range("A1:A10"))End Sub但是如果在单元格中包含错误,例如上例中的A1:A10区域包含一个“#DIV/0!”错误,运行上述代码后将产生运行时错误。例如出现类似下图的提示: 为避免出现这样的错误,我们可以将单元格中的错误用数值“0”取代。用下面的代码:Sub ReplaceErrors()On Error Resume NextWith Sheet1.Range("A1:A10").SpecialCells(xlCellTypeFormulas, xlErrors) = 0MsgBox WorksheetFunction.Sum(.Cells)End WithOn Error GoTo 0End Sub或者先进行一个错误检查,并给出提示:Sub CheckForErrors()Dim rErrCheck As RangeOn Error Resume NextWith Sheet1.Range("A1:A10")Set rErrCheck = .SpecialCells(xlCellTypeFormulas, xlErrors)If Not rErrCheck Is Nothing ThenMsgBox "指定的单元格中包含错误!"Application.Goto .SpecialCells(xlCellTypeFormulas, xlErrors)ElseMsgBox WorksheetFunction.Sum(.Cells)End IfEnd WithOn Error GoTo 0End Sub

124 次浏览
EXCEL利用VBA播放WAV声音文件
EXCEL利用VBA播放WAV声音文件

如果用VBA代码播放WAV声音文件,可以用下面的代码:Private Declare Function sndPlaySound32 _Lib "winmm.dll" _Alias "sndPlaySoundA" ( _ByVal lpszSoundName As String, _ByVal uFlags As Long) As LongSub PlayWavFile()sndPlaySound32 "C:\Windows\Media\ding.wav", 0&End Sub运行上述代码将播放“C:\Windows\Media”文件夹中的ding.wav声音文件。

331 次浏览
excel利用VBA在标题栏中显示工作簿的路径
excel利用VBA在标题栏中显示工作簿的路径

通常,当我们打开一个Excel工作簿时,标题栏中仅仅显示一个简单的文件名。我们可以用下面的VBA代码,让工作簿在打开时在标题栏显示其路径和文件名:按Alt+F11,打开VBA编辑器,在“工程”窗口中双击“ThisWorkBook”,在右边的代码窗口中输入以下代码:Private Sub Workbook_Open()ActiveWindow.Caption = ActiveWorkbook.FullNameEnd Sub需要注意的是,上述代码只是在工作簿打开时运行,如果将工作簿另存为其他名称,在上述代码未运行的前提下,标题栏中的路径不会改变。

100 次浏览
在excel用VBA更改批注的作者
在excel用VBA更改批注的作者

在Excel中,当光标移动到包含批注的单元格中时,通常会在状态栏和批注中显示批注者的名称。如果需要将批注者改为其他人,可以用下面的VBA代码。以后再插入新的批注,也将使用新输入的名称。使用前先将代码中的“新作者”和“原作者”按照需要进行替换。Sub ChangeCommentName()Dim ws As WorksheetDim cmt As CommentDim strOld As StringDim strNew As StringDim strComment As StringstrNew = "新作者"strOld = "原作者"Application.UserName = strNewFor Each ws In ActiveWorkbook.WorksheetsFor Each cmt In ws.CommentsstrComment = Replace(cmt.Text, strOld, strNew)cmt.Deletecmt.Parent.AddComment Text:=strCommentNext cmtNext wsEnd Sub

303 次浏览
excel在宏对话框中不显示宏命令名称
excel在宏对话框中不显示宏命令名称

如果Excel工作簿中包含宏命令,可以通过宏对话框来查看这些宏命令名称。方法是单击菜单“工具→宏→宏”,或按Alt+F8打开“宏”对话框。例如如下的代码: 在工作表中打开宏对话框: 有时我们不希望使用者通过宏对话框来运行宏命令,这时可以在代码的前面加上“Private”关键字。如:Private Sub test()……End Sub这样,当打开宏对话框后将看不到宏命令名称。

124 次浏览
如何在Excel中查找显示为井号(#)的单元格
如何在Excel中查找显示为井号(#)的单元格

有时打印Excel表格后发现有些单元格显示为井号(#),这些井号(#)并非手工输入的,而是Excel中的一种错误处理方法。例如当列宽不足或日期和时间为负数时,Excel就将这些单元格显示为井号(#)。处理的方法很简单,对于包含数字且显示为井号(#)的单元格,调整一下列宽或设置单元格格式为“缩小字体填充”;对于第二种情况,检查并修正公式即可。如果表格中的内容较多,一时无法看清哪些单元格包含错误的井号(#),可以用下面的VBA代码在当前工作表中查找,步骤如下:1.选择包含井号(#)的工作表,按Alt+F11,打开VBA编辑器。2.在“代码”窗口中输入下列代码:Sub 查找单元格井号()Dim rng As RangeFor Each rng In ActiveSheet.UsedRangeIf Left(rng.Text, 1) = "#" Thenrng.SelectMsgBox rng.Address & " 单元格包含#号"End IfNext rngEnd Sub3.运行代码。

139 次浏览
用VBA代码在Excel状态栏中显示提示信息
用VBA代码在Excel状态栏中显示提示信息

当我们在运行一个执行时间稍长的VBA代码时,可以用下面的VBA代码在状态栏中显示一些信息来提示用户:Application.StatusBar = "提示信息"代码运行完毕,再恢复默认状态栏:Application.StatusBar = FALSE例如下面的代码在状态栏中显示“正在运行,请稍后……”的提示信息,显示时间为5秒钟。Sub DisplayMessageOnStatusbar()‘开始执行代码Application.DisplayStatusBar = True ‘显示状态栏Application.StatusBar = "正在运行,请稍后……" ‘状态栏显示信息‘5秒钟后恢复默认状态栏Application.Wait Now + TimeValue("00:00:05")Application.StatusBar = FalseEnd Sub

227 次浏览
excel获取屏幕分辨率的VBA代码
excel获取屏幕分辨率的VBA代码

用下面的代码可以获取屏幕分辨率,需将其放入模块中运行。1.按Alt+F11打开VBA编辑器。2.单击菜单“插入→模块”,在模块中输入下列代码并运行:Declare Function GetSystemMetrics32 Lib "user32" _Alias "GetSystemMetrics" (ByVal nIndex As Long) As LongSub DisplayMonitorInfo()Dim X As Long, Y As LongX = GetSystemMetrics32(0) ‘ 宽度(像素)Y = GetSystemMetrics32(1) ‘ 高度(像素)MsgBox "屏幕分辨率为:" & X & " × " & Y & " 像素"End Sub

238 次浏览
共计27343条记录 上一页 1.. 263 264 265 266 267 268 269 ..2735 下一页