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

最新发布

Excel利用VBA转化公式中区域的引用类型
Excel利用VBA转化公式中区域的引用类型

Excel公式中对区域或单元格的引用有多种引用类型,如:$A$1 绝对行和绝对列A$1 绝对行和相对列$A1 相对行和绝对列A1 相对行和相对列如果要用VBA来转化公式中的引用类型,可以先选择需要转换的区域或单元格,然后运行下列代码。:Sub ConvFormulaReference()For Each m In SelectionIf m.HasFormula = True Thenm.Formula = Application.ConvertFormula(m.Formula, _xlA1, xlA1, xlRelRowAbsColumn)End IfNext mEnd Sub上述代码先用HasFormula属性判断所选区域的各单元格中是否包含公式,然后用Application.ConvertFormula 方法对公式的引用类型进行转换。其中第四个参数指定了所需转换的类型:xlAbsolute 绝对行和绝对列xlAbsRowRelColumn 绝对行和相对列

113 次浏览
excel打开工作簿时自动运行指定的宏
excel打开工作簿时自动运行指定的宏

如果需要在打开Excel工作簿时自动运行某个宏,可以用下面的两个方法: 一、Workbook.Open 事件1.在Excel中按快捷键Alt+F11,打开VBA编辑器。2.在“工程”窗口中双击“ThisWorkBook”,在右侧的代码窗口顶部左侧的“对象”框中,选择“WorkBook”。这时,Excel自动在代码窗口中输入下面的代码:Private Sub Workbook_Open()End Sub然后在其中输入需要执行的宏代码,如下例:Private Sub Workbook_Open()MsgBox ("Workbook_Open事件" & Chr(10) & ThisWorkbook.Name & "工作簿已打开!")End Sub3.保存工作簿并重新打开该工作簿。如上例中将弹出一个消息框。二、用Auto_Open宏1.在Excel中按快捷键Alt+F11,打开VBA编辑器。

125 次浏览
excel打开或关闭VBA编辑器自动语法检查功能
excel打开或关闭VBA编辑器自动语法检查功能

当在VBA编辑器代码窗口中输入有语法错误的语句时,默认VBA编辑器会弹出一个错误提示对话框,同时将错误语句显示为红色,这对于初学者可以起到很好的提醒作用。例如输入语句if range("A1")就立即回车,VBA编辑器会提示编译错误“缺少:Then或GOTO”。但有时语法错误并非无意造成的,例如当一行语句未输入完毕,就需要转到下一行继续输入其他语句。在这种情况下可以关闭自动语法检查功能,让VBA编辑器不再弹出错误提示对话框。设置方法如下:1.在VBA编辑器中,单击菜单“工具→选项”,弹出“选项”对话框。2.选择“编辑器”选项卡,取消选择“自动语法检测”选项。3.单击“确定”按钮。这样设置后,对于有语法错误的语句,回车后VBA编辑器虽不会弹出错误提示对话框,但仍会将其显示为红色

153 次浏览
excel利用VBA进行多表合并计算实例教程
excel利用VBA进行多表合并计算实例教程

在Excel中,用数据透视表可以轻松进行多个区域的数据合并计算。但当区域较多时,要在数据透视表向导中多次选择区域,稍显繁琐。如果需要合并的工作表较多,可以用下面的VBA代码来快速合并数据。区域的大小可以不同,各行或列的品种可以重复,但要求工作簿中各工作表中的数据存放在相同的位置。如下图为工作簿中某两个工作表中的数据,区域的起始位置都是E5单元格:方法是:将要存放合并数据的工作表命名为“汇总”,删除工作簿中没有合并数据的工作表,各工作表中要合并的数据右侧和下边没有其他数据。然后在VBA编辑器中运行下面的代码:Sub Summary()Worksheets("汇总").[e5].CurrentRegion.ClearContentsOn Error Resume NextDim sh As WorksheetFor Each sh In ActiveWorkbook.SheetsIf sh.Name <> "汇总" ThenWith sh‘获取工作表中数据区域的行数i = .[e65536].End(xlUp).Row‘获取工作表中数据区域的列数j = .[iv5].End(xlToLeft).Column‘将各工作表区域按R1C1样式存入tempstr字符串中,各区域之间用","隔开tempstr = tempstr & "’" & sh.Name & "’!R5C5:R" & i & "C" & j & ","End WithEnd IfNext‘清除tempstr字符串中最后一个","tempstr = Left$(tempstr, Len(tempstr) – 1)‘将tempstr字符串中的各区域名存入一维数组arr中arr = Split(tempstr, ",")‘将各个区域的数据合并计算到"汇总"表Worksheets("汇总").[e5].Consolidate arr, xlSum, True, TrueWorksheets("汇总").[e5] = Sheet1.[e5]End Sub上述代码将工作簿中除“汇总”表以外的所有工作表中从E5单元格开始的区域合并计算到“汇总”表中

370 次浏览
如何给Excel工作簿添加定时提醒功能
如何给Excel工作簿添加定时提醒功能

我们在编辑Excel工作表的过程中,如果有某个重要的事情需要在某一时间去完成,例如要在16:40分打个电话,或将报表交给部门经理等,为了避免遗忘,可以用VBA给工作簿添加一个定时提醒功能。方法如下:1.打开工作簿,按快捷键Alt+F11,打开VBA编辑器。2.单击菜单“插入→模块”,Excel将插入一个名称为“模块1”的模块。3.在右侧代码窗口中粘贴下列代码:Private Declare Function sndPlaySound32 _Lib "winmm.dll" _Alias "sndPlaySoundA" ( _ByVal lpszSoundName As String, _ByVal uFlags As Long) As LongSub Auto_Open()Application.OnTime TimeValue("16:40:00"), "DisplayAlarm" ‘第一次提醒Application.OnTime TimeValue("16:40:30"), "DisplayAlarm" ‘隔30秒第二次提醒End SubSub DisplayAlarm()sndPlaySound32 ThisWorkbook.Path & "\DRBELL.wav", 0&MsgBox (" 到时间了!")End Sub说明:上述代码用Auto_Open宏在工作簿打开时自动执行提醒代码。共设置了两次提醒,提醒时间分别为“16:40:00”和“16:40:30”,可以将该时间修改为所需的时间。提醒的方式为声音提醒和消息框提醒,声音文件为“DRBELL.wav”,需将该声音文件放置在工作簿所在文件夹中。本文结尾处提供示例文件下载,其中包含该声音文件。4.保存并关闭工作簿,然后重新打开工作簿。当到达设置的时间后,Excel会给出一个声音提示,同时弹出一个消息框。这下就再也不用担心忘记时间了。

139 次浏览
Excel中有关打印预览的一些VBA代码
Excel中有关打印预览的一些VBA代码

显示指定工作表的打印预览,假如该工作表名称为“Sheet1”:Worksheets("Sheet1").PrintPreview显示活动工作表的打印预览:Worksheets("Sheet1").PrintPreview显示工作簿中所有工作表的打印预览:Sheets.PrintPreview显示某一指定区域的打印预览,如当前工作表的A1:G10区域:ActiveSheet.Range("A1:G10").PrintPreview显示某一工作表中的某个图表的打印预览,假如工作表名称为“Sheet3”,其中某个图表名称为“图表 1”:Worksheets("Sheet3").ChartObjects("图表 1").ActivateActiveChart.PrintPreview

263 次浏览
在选定区域中进行数量统计的VBA代码
在选定区域中进行数量统计的VBA代码

如果在Excel中选择了一个或多个区域,用下面的VBA代码可以统计当前工作表所选区域中单元格(或行、列)的数量:1. 统计选定区域中的单元格数量:Sub CountCellsInSelection()Dim CellsNum As IntegerCellsNum = Selection.CountMsgBox "所选区域中的单元格数量为: " & CellsNumEnd Sub2.统计选定区域中所包含的行数,如果选择了多个区域,则统计行数之和。Sub CountRowsInSelection()Dim RowsNum As IntegerFor i = 1 To Selection.Areas.CountRowsNum = RowsNum + Selection.Areas(i).Rows.CountNext iMsgBox "所选区域中的行数为: " & RowsNumEnd Sub3.统计选定区域中所包含的列数,如果选择了多个区域,则统计列数之和。Sub CountColumnsInSelection()Dim ColumnsNum As IntegerFor i = 1 To Selection.Areas.CountColumnsNum = ColumnsNum + Selection.Areas(i).Columns.CountNext iMsgBox "所选区域中的列数为: " & ColumnsNumEnd Sub4.统计选定区域中的非空单元格数量:Sub CountNonBlankInSelection()Dim NonBlankNum As IntegerNonBlankNum = Application.CountA(Selection)MsgBox "所选区域中包含非空单元格有" & NonBlankNum & "个。"End Sub5.统计选定区域中有填充色的单元格数量:

188 次浏览
excel用VBA选择工作表中所有包含超链接的单元格
excel用VBA选择工作表中所有包含超链接的单元格

要选择工作表中所有包含超链接的单元格,用定位或查找的方法无法实现。下面的VBA代码可以实现这一目的。按Alt+F11,打开VBA编辑器,在“工程”窗口中双击某个工作表,在右侧的代码窗口中输入下列代码:Sub SelectHyperlinkCells()Dim hHlink As HyperlinkDim rRange As RangeDim NotFirstlink As BooleanOn Error Resume NextFor Each hHlink In ActiveSheet.HyperlinksIf NotFirstlink ThenSet rRange = Application.Union(rRange, hHlink.Range)ElseSet rRange = hHlink.RangeNotFirstlink = TrueEnd IfNextIf rRange Is Nothing Then EndrRange.SelectEnd Sub关闭VBA编辑器返回工作表界面,按Alt+F8打开“宏”对话框,运行“SelectHyperlinkCells”宏即可选择工作表中所有包含超链接的单元格。

107 次浏览
如何快速显示所有隐藏的Excel工作表
如何快速显示所有隐藏的Excel工作表

如果Excel工作簿中包含许多隐藏的工作表,要显示隐藏的工作表,通常的方法是单击菜单“格式→工作表→取消隐藏”(Excel 2003)或右击工作表标签,在弹出的快捷菜单中选择“取消隐藏”(Excel 2007/2010)。然后在“取消隐藏”对话框中逐一选择工作表取消其隐藏。但每次只能取消一个工作表的隐藏,当隐藏的工作表数量较多时,逐一这样操作稍显繁琐。实际上,用一行简单的VBA代码即可快速显示工作簿中所有隐藏的工作表。方法是:按Alt+F11,打开VBA编辑器,单击菜单“视图→立即窗口”,或按Ctrl+G,打开“立即窗口”,在其中输入:For Each s in sheets : s.Visible = True : Next然后按回车键运行代码,Excel会将工作簿中所有工作表(包括图表工作表)的“Visible”属性设置为“TRUE”,即显示所有隐藏的工作表。

120 次浏览
excel利用VBA设置或取消打印区域
excel利用VBA设置或取消打印区域

如果需要用VBA代码在Excel工作表中设置打印区域,可以用下面的方法。一、设置打印区域方法一:用PageSetup.PrintArea属性。代码如下:Sub SetPrintArea()Sheet1.PageSetup.PrintArea = "A1:F15"End Sub上述代码将区域A1:F15设置为打印区域。如果要同时设置多个打印区域,可以将上述代码改为:Sub SetPrintArea()Sheet1.PageSetup.PrintArea = "A1:F15,A20:F45"End Sub上述代码将区域A1:F15及A20:F45设置为打印区域,可以分两页来打印。还可以使用变量来设置一个动态打印区域:Sub SetPrintArea()PrintRow = 100Sheet1.PageSetup.PrintArea = "A1:G" & PrintRowEnd Sub

274 次浏览
共计5788条记录 上一页 1.. 66 67 68 69 70 71 72 ..579 下一页