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

最新发布

用VBA判断指定的excel工作簿是否打开
用VBA判断指定的excel工作簿是否打开

如果要判断一个指定的工作簿是否打开,可以将下面的VBA代码放入标准模块中,然后在子过程中进行调用。Function IsWkbOpened(sWkbName As String) As Boolean‘如果目标工作簿已打开则返回TRUE,否则返回FALSEDim i As LongFor i = Workbooks.Count To 1 Step -1If Workbooks(i).Name = sWkbName ThenExit ForEnd IfNext‘如果工作簿未找到If i = 0 ThenIsWkbOpened = FalseElseIsWkbOpened = TrueEnd IfEnd Function调用示例如下,将“Book2.xls”换成指定的工作簿名称:Sub IfWkbOpened()If IsWkbOpened("Book2.xls") ThenMsgBox "指定的工作簿已打开"ElseMsgBox "指定的工作簿没有打开"End IfEnd Sub

132 次浏览
excel利用VBA获取系统特殊文件夹路径
excel利用VBA获取系统特殊文件夹路径

Windows 特殊文件夹,包括 "Desktop" 文件夹、"MyDocuments" 文件夹等,如果我们要在VBA中用到这些文件夹,可以用下列代码来获取这些特殊文件夹的路径。Option ExplicitSub GetMyDocumentsPath()Dim WSHShell As ObjectSet WSHShell = CreateObject("Wscript. Shell") ‘请去掉Shell前的空格MsgBox "MyDocuments文件夹位于:" & WSHShell.SpecialFolders("MyDocuments")Set WSHShell = NothingEnd Sub说明:上述代码获取的是“MyDocuments”文件夹的路径,如果要获取其他特殊文件夹路径,可以将代码中的“MyDocuments”更换为下面的文件夹名称。如果指定的文件夹不存在,“SpecialFolders”属性返回空值。这些特殊文件夹有:AllUsersDesktop AllUsersStartMenu AllUsersPrograms AllUsersStartup Desktop Favorites Fonts MyDocuments NetHood PrintHood Programs Recent SendTo StartMenu Startup Templates

185 次浏览
如何将excel公式打印到Word中
如何将excel公式打印到Word中

有时我们需要将指定单元格或区域中的公式打印出来,以便分析。下面的VBA代码可以实现这个功能,可以将选择的单元格或区域中的公式打印到Word中,方便打印。使用方法:1.单击菜单“工具→引用”,在弹出的“引用 VBAproject”窗口中,勾选“Microsoft Word 11.0 Object Library ”2.在VBA编辑器中,单击菜单“插入→模块”,在右侧的代码窗口中输入下列代码。Public Sub PrintFormulasToWord(Dim Cnt As StringDim C As RangeDim WordObj As Word.ApplicationDim HasArr As BooleanOn Error Resume NextErr.Number = 0Set WordObj = GetObject(, "Word.Application")If Err.Number = 429 ThenSet WordObj = CreateObject("Word.Application")Err.Number = 0End IfWordObj.Visible = TrueWordObj.Documents.Add

130 次浏览
excel利用VBA选择已定义名称的区域
excel利用VBA选择已定义名称的区域

如果活动单元格位于某个已定义名称的区域中,可以用下面的VBA代码来选择这个区域,同时在状态栏中给出提示。Public Sub SelectRange()Dim RngName As StringDim R As RangeSet R = ActiveCellDim Msg As StringMsg = "活动单元格不在已定义名称的区域中"RngName = CellInNamedRange(R)If RngName <> "" ThenRange(RngName).SelectMsg = "已选择的区域名称: " + RngNameEnd IfApplication.StatusBar = MsgEnd SubPublic Function CellInNamedRange(Rng As Range) As StringDim N As NameDim C As RangeDim TestRng As RangeOn Error Resume NextFor Each N In ActiveWorkbook.NamesSet C = NothingSet TestRng = N.RefersToRangeSet C = Application.Intersect(TestRng, Rng)If Not C Is Nothing ThenCellInNamedRange = N.NameExit FunctionEnd IfNext NCellInNamedRange = ""End Function如果活动单元格位于多个已定义名称的区域中,将按照名称框下拉列表中的顺序选择第一个名称区域。

145 次浏览
用VBA将焦点定位于名称框
用VBA将焦点定位于名称框

Excel中提供了许多快捷键,但遗憾的是没有提供一个快捷键可以将焦点定位与名称框,下面的宏代码就可以实现这个功能。Public Declare Function SetFocus Lib "user32" (ByVal hwnd As Long) As LongPublic Declare Function FindWindow Lib "user32" Alias "FindWindowA" _(ByVal lpClassName As String, ByVal lpWindowName As String) As LongPublic Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" _(ByVal hWnd1 As Long, ByVal hWnd2 As Long, _ByVal lpsz1 As String, ByVal lpsz2 As String) As LongSub SetFocusNameBox()Dim Res As LongRes = SetFocus( _FindWindowEx( _FindWindowEx( _FindWindow("XLMAIN", Application.Caption) _, 0, "EXCEL;", vbNullString) _, 0, "combobox", vbNullString))End Sub我们可以给这个宏代码指定一个快捷键,如Ctrl+Shift+N,方法如下:单击菜单“工具→宏→宏”,打开“宏”对话框,选择“SetFocusNameBox”,单击“选项”按钮,在其中的文本框中输入大写的“N”,单击确定。 以后,只要按快捷键Ctrl+Shift+N,就可以将焦点定位到名称框

182 次浏览
excel中利用VBA生成一列随机字符串 代码
excel中利用VBA生成一列随机字符串 代码

用下面的VBA代码可以在A1:A100区域中生成由大小写字母和数字组成的12位长度的随机字符串,从中挑选几个作为密码用还是不错的。在Excel中按Alt+F11打开VBA编辑器,双击“工程”窗口中的某个工作表名称,在右侧的代码窗口中输入下列代码:Sub MakeRandomString()Dim J As IntegerDim K As IntegerDim iTemp As IntegerDim sNumber As StringDim RandomStr(1 To 100, 1 To 1) As StringDim bOK As BooleanRandomizeFor J = 1 To 100sNumber = ""For K = 1 To 12DoiTemp = Int((122 – 48 + 1) * Rnd + 48)Select Case iTempCase 48 To 57, 65 To 90, 97 To 122bOK = TrueCase ElsebOK = FalseEnd SelectLoop Until bOKbOK = FalsesNumber = sNumber & Chr(iTemp)Next KRandomStr(J, 1) = sNumberNext JRange("A1:A100").Value = RandomStrEnd Sub最后运行代码。如果要生成其他长度的随机字符串,将其中的For K = 1 To 12中的“12”改为其他数字即可,如:For K = 1 To 10即可生成10位长度的随机字符串。

309 次浏览
excel利用VBA制作包含超链接的工作表目录
excel利用VBA制作包含超链接的工作表目录

如果Excel工作簿中包含许多工作表,可以在一个工作表中列出所有工作表目录和相关说明,以方便在各工作表之间跳转。下面的VBA代码就可以实现这个功能,可以在某个工作表的第一列中产生其他工作表的目录列表及其超链接,单击工作表名称就可以跳转到相应的工作表中,并且可以在其他工作表的A1单元格中设置一个返回目录的超链接,单击可以返回到包含目录的工作表中。按Alt+F11,打开VBA编辑器,在“工程”窗口中双击要设置目录列表的工作表名称,在右侧代码窗口中输入下面的代码后运行:Sub CreateSheetsIndex()Dim wSheet As WorksheetDim i As Longi = 1With Me.Columns(i).ClearContents.Cells(1, 1) = "工作表目录".Cells(1, 1).Name = "目录"End WithFor Each wSheet In WorksheetsIf wSheet.Name <> Me.Name Theni = i + 1With wSheet.Range("A1").Name = "工作表" & wSheet.Index.Hyperlinks.Add Anchor:=.Range("A1"), Address:="", SubAddress:="目录", ScreenTip:= _"跳转到“" & Me.Name & "”工作表", TextToDisplay:="返回目录"End WithMe.Hyperlinks.Add Anchor:=Me.Cells(i, 1), Address:="", SubAddress:="工作表" & wSheet.Index, _ScreenTip:="跳转到“" & wSheet.Name & "”工作表", TextToDisplay:=wSheet.NameEnd IfNext wSheetEnd Sub说明:1.由于上述代码会在所有工作表的A1单元格输入链接内容,所以运行代码前务必确保A1单元格为空。2.如果工作表有密码保护,请先解除保护。3.运行代码创建工作表目录列表后,如果又新建工作表或修改工作表名称,请再次运行代码。

144 次浏览
excel利用VBA删除单元格、行和列
excel利用VBA删除单元格、行和列

如果要用VBA代码在Excel工作表中删除指定的单元格、行和列,可以使用下面的代码:Sub DeleteCellRowColumn()‘删除活动单元格,下方单元格上移ActiveCell.Delete Shift:=xlUp‘删除选定的区域,右方单元格左移Selection.Delete Shift:=xlToLeft‘ 删除行或列Range("B2").SelectSelection.EntireRow.DeleteRange("F2").SelectSelection.EntireColumn.DeleteEnd Sub

112 次浏览
如何在Excel2007中显示“开发工具”选项卡
如何在Excel2007中显示“开发工具”选项卡

Excel 2007的“开发工具”选项卡中有许多与程序开发和XML功能相关的命令,包括“代码”、“控件”、“XML”和“修改”组。利用该选项卡,可以进行录制宏、打开VBA编辑器、运行宏命令、插入控件等操作。在默认情况下,“开发工具”选项卡并未显示在Excel 2007功能区中,可以通过下面的方法让其总是显示在功能区中:单击“Office按钮→Excel 选项→常用”,在“使用Excel时采用的首选项”区域中,勾选“在功能区显示‘开发工具’选项卡”,单击“确定”。

122 次浏览
excel如何颠倒单元格内字符的排列顺序
excel如何颠倒单元格内字符的排列顺序

如果要颠倒某个单元格中字符串的排列顺序,例如将A1单元格中的“ABCDEFG”颠倒顺序排列为“GFEDCBA”,可以用自定义函数来实现,方法如下。1.按Alt+F11,打开VBA编辑器。2.单击菜单“插入→模块”,然后在代码窗口中输入下列代码:Function Reverse(Str As String)Reverse = StrReverse(Str)End Function3.关闭VBA编辑器,返回Excel界面。4.在某个单元格中输入公式:=Reverse(A1)即可得到A1单元格中颠倒顺序后的字符串。

154 次浏览
共计27343条记录 上一页 1.. 255 256 257 258 259 260 261 ..2735 下一页