精华内容
下载资源
问答
  • 我的目标:让中国的大学生走出校门的那一刻就已经具备这些office技能,让职场人士能高效...2、如果用户名或者密码连续输入错误超过三次,则弹出警告框提示即将退出程序,关闭警告框后即关闭程序。3、双击工作簿后,...

    我的目标:让中国的大学生走出校门的那一刻就已经具备这些office技能,让职场人士能高效使用office为其服务。支持我,也为自己加油!

    先来看下效果:1、双击工作簿后,弹出登录窗口,如果用户名或者密码有一个未输入,直接点击确定,会弹出一个警告框,显示用户名或者密码不能为空!

    ad9be9b8890983be19882dec79a4e031.gif

    2、如果用户名或者密码连续输入错误超过三次,则弹出警告框提示即将退出程序,关闭警告框后即关闭程序。

    e41011a3fc5e91a6f341f16980af458f.gif

    3、双击工作簿后,弹出登录窗口,点击登录窗口右上方的关闭命令不允许退出登录窗口。

    f1d0a6f917b6fb2e40c9db087f30d56f.gif

    4、输入正确的用户名和密码,点击确定后进入工作簿并激活Sheet1。

    2985eda20e0e2f690aca0dac9e59c561.gif

    本案例代码如下:确定按钮的Click事件代码如下:
    Private Sub CommandButton1_Click()Static i%If TextBox1.Value = "" Then MsgBox "用户名不能为空!", vbInformation, "警告": Exit SubIf TextBox2.Value = "" Then MsgBox "密码不能为空!", vbInformation, "警告": Exit SubIf TextBox1 = "wuxupeng" And TextBox2 = 123456 Or TextBox1 = "mihong" _    And TextBox2 = 123456 Or TextBox1 = "admin" _    And TextBox2 = 123456 Then    Unload Me    Application.Visible = True    Sheet1.Activate    Application.EnableCancelKey = xlInterruptElse    MsgBox "密码或者用户名错误,请重新输入!", vbInformation, "警告"    i = i + 1    If i >= 3 Then        MsgBox "输入错误超过三次,程序即将退出!"        Unload Me        Application.Visible = True        Application.Quit    End IfEnd IfEnd Sub
    本段代码主要用于验证用户名和密码,当用户输入用户名和密码错误三次以上时退出程序。窗体的QueryClose事件代码:
    Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer)    If CloseMode <> 1 Then Cancel = TrueEnd Sub
    本段代码用于禁用登录窗口的关闭按钮,防止用户手动关闭后登录窗口后进入工作簿。工作簿Open事件代码:
    Private Sub Workbook_Open()    Application.EnableCancelKey = xlDisabled    Application.Visible = False    UserForm1.ShowEnd Sub
    本段代码是打开工作簿时隐藏工作簿窗口并显示登录窗口。一共三段代码就可以实现案例中的效果了。本节知识点:1、静态变量的使用2、如何禁用事件3、Application的EnableCancelKey属性

    公众号后台资源库可获取更多资源:

    d1f0bb5ba704628a1dd40e82fde86b6f.png

    本节的分享就到这里,祝大家每天都有进步。

    1

    在线课堂在逐渐完善中,欢迎您的光临!

    1d9c1e9ecff481c2077920357edc543f.png

    f399e7a78777c132e6154e36daa58acc.gif

    点击下方“”即可进入云课堂学习!

    展开全文
  • 提示:有的电脑启用了FN键,如果你按F+数字键无法实现下面的效果,就加按FN键+F数字键(关闭fn键,按fn+esc)F1键F1 查看帮助页Alt+ F1 一键插入Excel图表Ctrl+F1 显示/隐藏功能区当你遇到不会的函数或命令,选中按F1...

    提示:有的电脑启用了FN键,如果你按F+数字键无法实现下面的效果,就加按FN键+F数字键(关闭fn键,按fn+esc)

    F1键

    F1 查看帮助页

    2265ae62ef68e6cd22175c16b9af0518.png

    Alt+ F1 一键插入Excel图表

    2e2e922b26697618f133fd1c705c4415.png

    Ctrl+F1 显示/隐藏功能区

    当你遇到不会的函数或命令,选中按F1就可以弹出帮助文档,对新手特别有帮助,Alt+F1切换最上面的命令栏显示也是经常会用到。

    F2键

    F2 : 单元格进入编辑状态,等同于双击单元格。

    Ctrl + F2 打印

    Shift + F2 快速插入批注,如果单元格已有批注,可以一键进入批注编辑状态

    e48a282559442e53e9bb7bac82a37450.png

    F2一般很少用,但在定义名称框中F2可以锁定公式,不会出现按方向键后公式发生变化。插入、编辑批注快捷键是很常用的

    F3键

    F3 :windows搜索文件快捷键,按下可以进入搜索文件状态,不信你在桌面按F3试试。

    Ctrl+F3 打开Excel名称管理器,定义单元格名称快捷键

    2ea82b7a04aa7e12b2e9ff16913918a0.png

    这个键在Excel表格用处不大,一般很少用它

    F4键

    F4 选中公式的单元格引用,切换引用方式

    dcb6f6cbfc1dd0c7d406fedbf949041e.png

    Alt+ F4 关闭当前打开的程序或窗口。在桌面上按它可以快速关闭电脑。

    e075d415540d850ad54a4f2d2d88d802.png

    Ctrl+F4 当打开多个窗口时,关闭当前的窗口

    F4 还可以重复操作的特征,在Excel中的应用超级强大,比如删除一行后,再选其他行可以直接删除。隐藏、复制格式、删除、插入工作表等都可以重复操作大大提高操作效率。

    F5键

    F5 VBA编辑器中运行代码的快捷键

    F5 定位快捷键,等同于Ctrl+G

    c39cbe6f79be224e79545e8762c63b37.png

    F5打开的定位窗口,是Excel中的一大神器,它可以对特殊单元格进行快捷键选取定位,比如选取所有空单元格、非隐藏单元格等。

    F6键

    F6 :显示当前窗口的快捷键,等同于按Alt键

    这个键对Excel基本没什么作用,大家忽略它吧。

    F7键

    F7 拼写检查

    0ad60490a06b401c12db1f49d9c18c8f.png

    有时为了防止英文单词输入错误,可以按F7帮你检查一下,对于中文不灵,不信你输入"名子",就不会检查出来。

    F8键

    F8 :扩展选取区域。等同于按shift键不松选取一个连续的区域

    bcfd5cdf668eb3e6c38ee0716be9a236.png

    F8:VBA中逐步运行代码的快捷键

    Shift+ F8 等同于按Ctrl不松,选取多个不连续的区域

    F8在Excel表格中基本上没什么作用,但对于VBA编程来说,它可以逐步运行代码。是每个VBA程序员必须掌握的快捷键

    F9键

    F9 手动刷新表格中的公式计算结果。

    F9 选中公式部分表达式,可以转换为结果,如下图中选中公式中 text(c3,"aaaa")后按F9可以转换为结果星期二

    0f7a2c2e13b21ef31e50aa5ce9e626f4.png

    F9对Excel用户来说,是一个非常重要的快捷键,当你的公式出错时,你需要检查公式中是哪部分出了错,这时你就需要用F9了。

    F10键

    Shift + F10 打开右键菜单

    c1e60a011c1f73b2dc076c2f80c1c84e.png

    这个快捷键可以代替鼠标右键,不过有的笔记本是自带右键菜单按键的。

    F11键

    F11 插入图表式工作表

    Alt+ F11 进入VBA编辑窗口

    654ba0cbcadb37e6376df65c17dbc5da.png

    这两个快捷键一般人用不到,后者学习VBA必会

    F12键

    F12 文件另存快捷键

    b9a2fa7b2959a346932f4aafcfe619f1.png

    很多人习惯于去命令栏中找另存为命令,其实按F12是最快捷的。


    在这里相信有许多想要学习会计的同学,大家可以关注小编头条号,

    下方评论区留言:想要学习,并收藏本文;

    私信小编:学习

    即可领取一整套系统的会计学习资料!还可以免费试学会计课程15天!

    因领取人数太多,不能及时回复,请大家耐心等待。。。。

    展开全文
  • VBA文件夹,直接解压后,放到%Common Files%\microsoft shared下, 再通过win+r调出CMD窗口,输入regedit后弹出注册表编辑器, 找到HKEY_CLASSES_ROOT\TypeLib\{0002E157-0000-...关闭已经打开的OFFICE,再打开就可以了
  • 常用VBA代码

    2013-01-27 15:06:00
    VBA代码(珍藏) '**关闭屏幕刷新 Application.ScreenUpdating = False '**取消删除工作表警告提示 Application.DisplayAlerts = False '**引用打开窗口 Dim fd As FileDialog Dim ...
      VBA代码(珍藏


    '**关闭屏幕刷新
      Application.ScreenUpdating = False
     

     '**取消删除工作表警告提示
      Application.DisplayAlerts = False
     
      '**引用打开窗口
      Dim fd As FileDialog
      Dim vrtSelectedItem As Variant
     
      Set fd = Application.FileDialog(msoFileDialogOpen)
      fd.InitialFileName = Sheets("设置").Range("CU7").Value & "\库存核对" '默认打开的文件夹

      With fd
        .AllowMultiSelect = True '可选多个文件
        If .Show = -1 Then
          For Each vrtSelectedItem In .SelectedItems
            FJ = Split(vrtSelectedItem, "\")
            ThisWorkbook.Sheets("设置").Range(CR).Value = FJ(3) '记录文件名
            ThisWorkbook.Sheets("设置").Range("AG1").Value = FJ(3) '记录文件名
            fd.Execute '执行打开
            Me.CommandButton62.Enabled = True
            Exit For
          Next
        End If
      End With
      Set fd = Nothing


    ****得到计算机名称
      Environ("Computername")

      ****判断是不是数字
      If IsNumeric(InputBox("Please Input:")) Then

      ****筛选非空单元格
      ActiveSheet.Range("$E$7:$I$15").AutoFilter Field:=1, Criteria1:="<>"

      ****仅贴值
        Range("F5:J25").Select
        Selection.Copy
        Range("E5").Select
        ActiveSheet.PasteSpecial Format:=3, Link:=1, DisplayAsIcon:=False, _
            IconFileName:=False

     
      ****设置是否冻结空格
      ActiveWindow.FreezePanes = False
      ActiveWindow.FreezePanes = True

     
      ****设置页面
      With ActiveSheet.PageSetup
        .LeftFooter = "编制:                  审核:" '页脚LEFT
        .PrintTitleRows = "$1:$3" '要打印的默认页头
        .PrintArea = "$A$1:$E$12" '打印区域
      End With
     .PrintOut Copies:=2 '打印(2份)
      ****设置批注
        Range("F8").AddComment'添加批注
        Range("F8").Comment.Visible = False'隐藏框
        .Comment.Shape.TextFrame.AutoSize = True'自动调整框大小
        .Comment.Font.FontStyle = "常规"   '将字体设置为“常规”(不加粗)(不成功)
         '-------------------------------------
        Range("F8").Comment.Text Text:="黄传兵:" & Chr(10) & "SS"
        If Range("F8").Comment Is Nothing Then '如果没有批注内容

     
    Public Function OPEN_JL(WJ As String)  '检测是否有相应引用文件的打开记录
      Dim I As Integer
      Dim MC, MC_CR As String
     
      L3 = ThisWorkbook.Sheets("设置").Range("N2").Value
      For I = 4 To L3 + 3
        MC_CR = "N" & I
        MC = ThisWorkbook.Sheets("设置").Range(MC_CR).Value
        If UCase(MC) = UCase(WJ) Then
          OPEN_JL = "Y"
          Exit For
        End If
      Next I
    End Function

     '打开需引用的文件

    Public Sub OPEN_WJ(LJ, WJ As String)On Error GoTo X:
      Dim M4, Y3 As String
      Dim LJWJ As String
     
      LJWJ = LJ & WJ
      If OPEN_YN(WJ) <> "Y" Then '如果未被其它引用并打开
        Workbooks.Open Filename:=LJWJ
        L3 = ThisWorkbook.Sheets("设置").Range("N2").Value
        M3_CR = "N" & L3 + 4
        M4_CR = "O" & L3 + 4
        ThisWorkbook.Sheets("设置").Range(M3_CR).Value = WJ
        ThisWorkbook.Sheets("设置").Range(M4_CR).Value = 1
        Windows(WJ).Visible = False

      Else '如果已被其它引用并打开
        If OPEN_JL(WJ) = "" Then
          L3 = ThisWorkbook.Sheets("设置").Range("N2").Value
          M3_CR = "N" & L3 + 4
          M4_CR = "O" & L3 + 4
          ThisWorkbook.Sheets("设置").Range(M3_CR).Value = WJ
          ThisWorkbook.Sheets("设置").Range(M4_CR).Value = 2
        End If
      End If
     
      Exit Sub
    X:
      MsgBox """ & WJ & ""未打开,请检查路径。"

    End Sub

    '检测文件是否已经打开

    Public Function OPEN_YN(WJ As String)    Dim X As Workbook
     
      For Each X In Application.Workbooks
        If UCase(CStr(X.Name)) = UCase(WJ) Then
          OPEN_YN = "Y"
          Exit For
        End If
      Next
    End Function


    '关闭引用文件

    Public Sub CLOSE_YY() On Error Resume Next
      Dim I, L As Integer
      Dim MC, MC_CR, ZT, ZT_CR As String
     
      L = ThisWorkbook.Sheets("设置").Range("N2").Value
      For I = L + 3 To 4 Step -1
        MC_CR = "O" & I
        ZT_CR = "P" & I
        MC = ThisWorkbook.Sheets("设置").Range(MC_CR).Value
        ZT = ThisWorkbook.Sheets("设置").Range(ZT_CR).Value
        If MC <> "" Then
          If Workbooks(MC).Saved = False Then Workbooks(MC).Save
          If ZT = 1 Then Workbooks(MC).Close '如果是本文件引用并打开的则关闭
          ThisWorkbook.Sheets("设置").Range(MC_CR).Value = ""
          ThisWorkbook.Sheets("设置").Range(ZT_CR).Value = ""
        End If
      Next I
    End Sub


    ***设置控件变量
    Dim LB As MSForms.Label
    Set LB = SYS.Controls("LB" & I + 1)

     
    ***只读方式打开、关闭时不保存
    , ReadOnly:=True
    , SaveChanges:=False

     
    文本框输入限制处理-
      TextBox1.MaxLength = 5 '最大允许输入的字符长度5
      TextBox1.AutoTab = True '当达到最大允许输入的字符长度是,自动跳格

     
    ***得到文件扩展名
      Right(ActiveWorkbook.Name, Len(ActiveWorkbook.Name) _
                 - InStr(ActiveWorkbook.Name, ".") + 1)

     
    ***得到指定字符出现的位置,并替换字串中指定的字符
      Z = Me.TextBox37.Value
      LS = InStr(1, Z, "(")
      RS = InStr(1, Z, ")")
      Replace(Z, Mid(Z, LS + 1, RS - LS - 1), Sheets("设置").Range("J1").Value)

    ***单元格背景、前景设置
      .Cells(R + 1, C).Interior.Color = 255'背景红
      .Cells(R + 1, C).Font.ThemeColor = xlThemeColorDark1 '前景白

      .Cells(R + 1, C).Interior.Pattern = xlNone'背景无
      .Cells(R + 1, C).Font.ColorIndex = xlAutomatic'前景黑(默认)

     ***当前单元格的行、列号
      Selection.Row
      Selection.Column

    ***当关闭文件时自动备份----------------------------------
          Dim NEW_NAME As String
          NEW_NAME = Year(Date) & Month(Date)
          NEW_NAME = "\\Ck2\公司平台 (e)\仓库备份勿删\月度进销存" & NEW_NAME & ".xlsm"
          Me.SaveAs Filename:=NEW_NAME, FileFormat:=xlOpenXMLWorkbookMacroEnabled,          CreateBackup:=False

    ***处理单元格批注
       'U_NAME是修改人的名字
       WITH RANGE(CR)
            If .Comment Is Nothing Then
              .AddComment
              .Comment.Visible = False
              .Comment.Text Text:=U_NAME & ":" & Chr(10) & "原" & Z & "," & Date & GG
            Else
              .Comment.Text Text:=.Comment.Text & Chr(10) & U_NAME & ":" & Chr(10) & "原" & Z & "," & Date & GG
            End If
       END WITH

    Public Function HOW_CS(STR1 As String, STR2 As String)  '得到 STR2 在 STR1 中出现的次数
      Dim I As Integer
      Dim B As String
      '黄传兵定稿的2008-12-17
      B = STR1
      If InStr(B, STR2) = 0 Then
        I = 0
      Else
        For I = 1 To 50
          B = Replace(B, Left(B, InStr(B, STR2)), "", 1, 1)
          If Len(B) = 0 Or InStr(B, STR2) = 0 Then
            Exit For
          End If
        Next I
      End If
      HOW_CS = I
    End Function

    用API切换打印机
    Application.Dialogs(xlDialogPrinterSetup).Show
    Application.ActivePrinter'当前打印机


     '隐藏列
    Columns(I + J).EntireColumn.Hidden = True  '隐藏列


     '隐藏行
    Rows(I).EntireRow.Hidden =True


    '隐藏表
    Sheets("表1").Visible = False


    '为Image控件添加图片
    Me.Image1.Picture = LoadPicture("E:\跟踪卡管理系统\跟踪卡日志\CT1.jpg")


    Sub OUT_JPG() '将图表另存为JPG
      Dim shap As Shape
      Dim i As Integer

      With ThisWorkbook.Sheets("1")
        For i = 1 To .Shapes.Count
            Set shap = .Shapes(i)
            shap.Copy
          With .ChartObjects.Add(0, 0, shap.Width, shap.Height).Chart
            .Paste
            .Export "d:\" & i & ".jpg"
            .Parent.Delete
          End With
        Next i
      End With
    End Sub


      '动态添加控件
        Set Mycmd = Controls.Add("MsForms.CommandButton.1") ', CommandButton2,Visible)
        Mycmd.Left = 18
        Mycmd.Top = 150
        Mycmd.Width = 175
        Mycmd.Height = 20
        Mycmd.Caption = "非常有趣。" & Mycmd.Name


      '数字转换为中文大写(A1单元格)公式
    =IF(A1<0,"(金额为负无效)",IF((A1-INT(A1))=0,"(人民币)"&TEXT(A1,"[DBNUM2]")&"元整",IF(INT(A1*10)-A1*10=0,"(人民币)"&TEXT(INT(A1),"[DBNUM2]")&"元"&TEXT((INT(A1*10)-INT(A1)*10),"[DBNUM2]")&"角整",TEXT(INT(A1),"[DBNUM2]")&"元"&IF(INT(A1*10)-INT(A1)*10=0,"零",TEXT(INT(A1*10)-INT(A1)*10,"[DBNUM2]")&"角")&TEXT(RIGHT(A1,1),"[DBNUM2]")&"分")))


    UCase 函数
    返回 Variant (String),其中包含转成大写的字符串。
     
    语法
    UCase(string)
    必要的 string 参数为任何有效的字符串表达式。如果 string 包含 Null,将返回 Null。
     
    说明
    只有小写的字母会转成大写;原本大写或非字母之字符保持不变。

     '将A列转字母全部转换成小写
     Sub test1()                                                             '设置TEST为过程的名称
     
    Dim x As Integer                                                     '声明X为整数变量
     For x = 1 To Range("A65536").End(xlUp).Row       '设置X的范围为1到A列最后空白单元格的行数
     Range("A" & x) = LCase(Range("A" & x))               '附值单元格Ax的格式全部转换为小写,如果是UCase,则转换成大写
     Next x                                                                      '循环X
     
    End Sub                                                                  '结束过程
     

     '复制单元格并改名
      Sheets("Sheet1").Copy Before:=/After:=Sheets(2)
      Sheets("Sheet1 (4)").Name = "1"

    Public Sub QHHZ(TXT As MSForms.TextBox, GJZ, DTHZ As String)
    '将指定文本框中指定的文字块(可多选,用“,”分隔)替换为特定的文字(文本框名,要替换的字,被替换的字)
      Dim I As Integer
      Dim Y As String
      Dim FJ() As String
     
      With TXT
        If .Value <> "" Then
          FJ = Split(DTHZ, ",")
          Y = ""
          For I = 0 To 3
            If InStr(1, .Value, FJ(I)) <> 0 Then  '如果找到FJ(I)最先出现的位置
              Y = "Y"
              Exit For
            End If
          Next I
          If Y = "Y" Then
            .Value = Replace(.Value, FJ(I), GJZ)
          Else
            .Value = .Value & GJZ
          End If
        End If
        .SetFocus
      End With
     
    End Sub

    Function SheetIsExist(strExcleName As String, strSheetName As String) As Boolean
        '//判断名称的工作表是否已经在指定的Excel文件中存在
     
        Dim shtSheet As Worksheet
        
        SheetIsExist = False
        On Error GoTo lab1
        Set shtSheet = Workbooks(strExcleName).Sheets(strSheetName)
        If shtSheet Is Nothing Then
            SheetIsExist = False
        Else
            SheetIsExist = True
        End If
        
        Set shtSheet = Nothing'释放变量空间
        Exit Function
     
    lab1:
        SheetIsExist = False
    End Function

    Replace(expression, find, replace[, start[, count[, compare]]])
    函数功能:返回一个字符串,该字符串中指定的子字符串已被替换成另一子字符串,并且替换发生的次数也是指定的。
    说明:
    expression 必需的。字符串表达式,包含要替换的子字符串。 
    find 必需的。要搜索到的子字符串。 
    replace 必需的。用来替换的子字符串。 
    start 可选的。在表达式中子字符串搜索的开始位置。如果忽略,假定从1开始(若不是从1开始,则之前的字符将不返回***,可用Left()解决)。 
    count 可选的。子字符串进行替换的次数。如果忽略,缺省值是 –1,它表明进行所有可能的替换。 
    compare 可选的。数字值,表示判别子字符串时所用的比较方式。关于其值,请参阅“设置值”部分。 
     

    隐藏或显示列
    ActiveSheet.Columns("AW:BE").EntireColumn.Hidden = False
     

    切换控制权给系统,用于显示进度条(放置于显示进度条的代码之后)
    DoEvents
     

    '为单元格中指定的文字添加“下划线”
    With .Cells(I, J).Characters(Start:=7, Length:=3).Font
                  .Underline = xlUnderlineStyleSingle
                End With
     

    '判断数据类型
    TypeName(i)="Single" 就是单精度浮点数
    TypeName(i)="Double" 就是双精度浮点数
    TypeName(i)="String" 就是字符串
     

    on error 语句的具体用法
    ①on error resume next 表示忽略所有错误继续执行下一语句,如果还有错就再往下
    ②on error goto 0 表示出现错误时不进行转向,直接中断执行 
    ③on error goto <标号> 表示出现错误时转到标号处执行 
     

    '判断是否存在指定工作表
    Dim wsh As Worksheet
    For Each wsh In Worksheets
        If InStr(wsh.Name, "省") Then
            Call SUB1
        Else
            Call SUB2
        End If
    Next

    Private Sub TextZ_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
      '如果离开TextZ,按"回车"则转移焦点到TextX
      If KeyCode = 13 Then
        With Me.TextX
          .SetFocus
          If .Value <> "" Then
            .SelStart = 0
            .SelLength = Len(.Value)
          End If
        End With
      End If
    End Sub

    Private Sub ListXYZ_Click()
      '将列表框中的数据分别显示到文本框中
      With Me
        If .ListXYZ.ListIndex <> -1 Then
          .LabelId = .ListXYZ.Column(0, .ListXYZ.ListIndex)
          .TextX = .ListXYZ.Column(1, .ListXYZ.ListIndex)
          .TextY = .ListXYZ.Column(2, .ListXYZ.ListIndex)
          .TextZ = .ListXYZ.Column(3, .ListXYZ.ListIndex)
        End If
      End With
    End Sub

    '获得某列最后一个有数据的行/列号
      MsgBox ThisWorkbook.Sheets("A7").Range("B50").End(xlUp).Row
      MsgBox ThisWorkbook.Sheets("A7").Range("zz2").End(xlUp).Column
     
    获得第4行最后有数据的“列号“ 的公式
      =LOOKUP(1,0/(4:4<>""),COLUMN(4:4))
    获得H列最后有数据的“行号“ 的公式
    =LOOKUP(1,0/(H:H<>""),ROW(H:H))

    退出当前excel进程
    Application.Quit

    定义函数的可选参数: Optional cf = False
      例子:
    Public Function find_list_easy(wkbook, wksheet, maxRange As String, startColorRow, zColorRow As Integer, _
                                   xy As String, Optional cf = False) As String

    若想在只读文件关闭时不保存且不提示,可如下:
    Private Sub Workbook_BeforeClose(Cancel As Boolean) 
      If Me.Saved = False And Not Me.ReadOnly Then
        Me.Save
      Else
        Me.Saved = True
      End If

    End Sub

    可以用ParamArray来传递不定参数,示例代码如下: 
    Function MYCONCATE(ParamArray Args() As Variant) As String
    Dim iArg As Variant
    Dim tempStr As String
    Dim iStep As Integer
        For Each iArg In Args
            If IsArray(iArg) Then
                If IsObject(iArg) Then
                    For Each icell In iArg
                        tempStr = tempStr & CStr(icell.Text)
                    Next
                Else
                    For iStep = LBound(iArg) To UBound(iArg)
                        tempStr = tempStr & CStr(iArg(iStep))
                    Next
                End If
            Else
                tempStr = tempStr & CStr(iArg)
            End If
        Next
        
        MYCONCATE = tempStr
    End Function

    获取当前单元格的值……
    ActiveCell.Value,这个我忘了,汗1个
    MsgBox ActiveCell.EntireColumn.Column '第几列
    MsgBox ActiveCell.EntireRow.Row '第几行
     

    将某列设置为“文本”或“通用”格式
        Columns("C:C").Select
        Selection.NumberFormatLocal = "@"
        Selection.NumberFormatLocal = "G/通用格式"
     

    '若表中存在“筛选”,取消之

     ActiveSheet.ShowAllData
     

    '“关闭”文件前自动判断是否为“只读方式”打开,若是则不提示保存,否则自动保存并关闭,适用于文件BeforeClose事件中
        With Me
            If .ReadOnly = True Then
                .Saved = True
            Else
                If .Saved = False Then
                    .Save
                    .Close
                End If
            End If
        End With

    解决VBA运行因公式造成缓慢的问题
        Application.Calculation = xlManual'关闭自动计算公式功能(放在程序开关)
        Application.Calculation = xlAutomatic'打开自动计算公式功能(放在程序结尾)

    '计算程序运行时间(转换为秒)
        time1 = Time '记录开始时间
        time2 = Time '记录结束时间
        Me.Label6.Caption = "用时:" & Round((time2 - time1) * 24 * 3600, 1) & " 秒" '显示用时

    ‘设置整个单元格的“前景、背景色”
      If Me.CheckBox1.Value = False Then
        Cells.Interior.Color = Sheets("设置").Range("G1").Interior.Color'背景色
        Cells.Font.Color = Sheets("设置").Range("G1").Font.Color'前景色
      End If

    受“筛选”影响结果的统计公式:
    =SUBTOTAL(9,F7:F1000)

     
    '关闭设置
        Application.ScreenUpdating = False
        Application.DisplayStatusBar = False
        Application.Calculation = xlCalculationManual
        Application.EnableEvents = False
        ActiveSheet.DisplayPageBreaks = False '注:这是工作表级的设置
     
    '打开(改变的)设置
        Application.ScreenUpdating = True 'screenUpdateState
        Application.DisplayStatusBar = True 'statusBarState
        Application.Calculation = xlAutomatic 'calcState
        Application.EnableEvents = True 'eventsState
        ActiveSheet.DisplayPageBreaks = True 'displayPageBreaksState '注:这是工作表级的设置
     

    '设置在边距
        With ActiveSheet.PageSetup
            .LeftMargin = Application.InchesToPoints(0.36)
            .RightMargin = Application.InchesToPoints()
            .TopMargin = Application.InchesToPoints()
            .BottomMargin = Application.InchesToPoints()
        End With

    '获取鼠标坐标点:
    Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

    Type POINTAPI
    X As Long
    Y As Long
    End Type

    Public Function getmouse_x_y() As POINTAPI
    GetCursorPos getmouse_x_y

    End Function



    sub test()
    'call getmouse_x_y '调用“获取鼠标坐标值过程”(假定你们给的过程/程序,名叫getmouse_x_y)
    if getmouse_x_y.x>100 and getmouse_x_y.y>100 then …… '根据返回当前鼠标的坐标值执行某过程/程序
    ……
    end sub

    '为获取鼠标位置,引入API(写在模块开始处)
    Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long
       
    '为获取鼠标位置,声明POINTAPI数据结构
    Type POINTAPI
        X As Long
        Y As Long
    End Type
    '-------------------------------------------------------
    Public Function get_point() As POINTAPI
    '获取鼠标位置
        GetCursorPos get_point
       
        'MsgBox get_point.X & "," & get_point.Y
    End Function
     

    '获取数组元素数
    UBound(array)
     

    '判断窗体是否打开(仅非模式有效)
    If form1.Visible = True then
     
     
     
     
     
     
     
     
     
     
     
     
     
     

    转载于:https://www.cnblogs.com/ssfie/archive/2013/01/27/2878795.html

    展开全文
  • VBA常用技巧

    2014-12-21 16:39:28
    45-2 单击工作簿关闭按钮关闭工作簿 12 技巧46 禁用工作簿的关闭按钮 12 技巧47 保存工作簿的方法 12 47-1 使用Save方法 12 47-2 直接保存为另一文件名 12 47-3 保存工作簿副本 12 技巧48 保存指定工作表为工作簿...
  • 今天遇到了Office 365 Word无法创建宏的问题,具体表现为:在宏窗口中点击创建时会弹出“无法创建宏”的提示。2. 对于已有的全局宏(在Normal.dotm中的宏)点击运行以后,宏窗口关闭了,没有任何反应。在文件-选项...

    今天遇到了Office 365 Word无法创建宏的问题,具体表现为:

    1. 在宏窗口中点击创建时会弹出“无法创建宏”的提示。

    c5c2d739711b1b4a7c5e99ad1427ad44.png

    2. 对于已有的全局宏(在Normal.dotm中的宏)点击运行以后,宏窗口就关闭了,没有任何反应。

    在文件-选项-信用中心启动了所有宏,但是仍然不起作用。

    最后发现问题原因可能是Normal.dotm文件损坏。但是由于VBA的代码没有备份,需要从Normal.dotm里面把VBA拷出来。如果不需要这些代码的话,可以直接删除Normal.dotm文件

    解决方法如下(需要python):

    1. 首先将C:Users<用户名>AppDataRoamingMicrosoftTemplateNormal.dotm文件拷贝至某个工作目录
    2. 将其重命名为Normal.zip并解压
    3. 解压后的文件结构大概是这样
    $ ls Noraml/
    [Content_Types].xml* _rels/               docProps/            word/

    VBA项目就在word/vbaProject.bin中 ,现在需要从中提取出VBA代码,这里就需要用Python了

    4. 安装oletools

    $ sudo -H pip install -U oletools

    5. 用oletools提取vbaProject.bin即可得到VBA代码。

    $olevba3  word/vbaProject.bin 

    6. 最后将原来的Normal.dotm删除即可正常使用宏。

    相关问题:

    无法创建宏answers.microsoft.com
    eba8243c033269b73aef705d24d3c73f.png
    展开全文
  • VBA编程技巧大全

    2013-08-05 09:03:19
    VBA常用技巧 目录 VBA常用技巧 1 第1章 Range(单元格)对象 10 技巧1 单元格的引用方法 10 1-1 使用Range属性 10 1-2 使用Cells属性 11 1-3 使用快捷记号 11 1-4 使用Offset属性 12 1-5 使用Resize属性 13 1-6 使用...
  • excel合并工作簿VBA

    2012-07-24 14:15:12
    主要内容如下: Sub 合并工作簿() Dim p As Integer Dim s As Integer Dim i As Integer Dim hao As String Dim fd As FileDialog ...Application.DisplayAlerts = False '关闭提示窗口 Set newshe = ThisWo...
  • CAD_VBA开发手册

    热门讨论 2008-12-06 17:57:59
    打开、保存和关闭图形 设定AutoCAD参数 控制应用程序窗口 控制图形窗口 重置活动对象 设定和返回系统变量 精确制图 提示用户输入 访问AutoCAD命令行 工作于无打开文档状态 输入其它文件格式 输出到其它...
  • 用VB实现 Sub 拆分工作簿() Application.ScreenUpdating = False '... Application.DisplayAlerts = False '关闭窗口提示 kk = 2 Set dic = CreateObject("scripting.dictionary") With ThisWorkbook.Wo...
  • 中文版Excel.2007高级VBA编程宝典 1/2

    热门讨论 2012-04-06 16:00:16
    本书涵盖了使用VBA 扩展Excel 功能的方法、提示和思想。Excel 2007 还有一些绝秘的新技巧,John Walkenbach 将帮助您掌握它们。 本书的作者John Walkenbach 是享有国际美誉的“电子表格先生”。他在书中分享了自己...
  • 中文版Excel.2007高级VBA编程宝典 2/2

    热门讨论 2012-04-06 16:41:38
    本书涵盖了使用VBA 扩展Excel 功能的方法、提示和思想。Excel 2007 还有一些绝秘的新技巧,John Walkenbach 将帮助您掌握它们。 本书的作者John Walkenbach 是享有国际美誉的“电子表格先生”。他在书中分享了自己...
  • 02067关闭窗口 03001通过索引引用工作表 03002通过名称引用工作表 03003通过Sheets集合引用工作表 03004引用当前活动工作表 03005引用第一个工作表 03006引用最后一个工作表 03007引用所有的工作表 03008引用指定的...
  • 用OLE DB窗口引用工作表或写SQL语句,因为用这个方法同VBA相通,copy下来代码区的的语句 2、2 打开透视表文件,将透视表中的字段全部拖出来,也就是变成一个空数据透视表。 右击下面工作表图标 或者 工具》宏》...
  • visio无法关闭问题

    千次阅读 2011-10-26 17:17:32
    visio的绘图过程中碰到:“你不能退出visio因为某程序正在处理来自visio的事件,如果VBA处于断点可重置VBA,然后在退出”的错误窗口提示。。这样visio导致无法正常退出,十分头疼。。 (最开始是报剪切板出错的提示...
  • 修改了VBA插件启动时提示下标越界的问题 更改了工程文件名和DLL文件名,去掉了开头的VB字母 修改了安装文件的文件名为VBEnhancedSearch_Setup.exe 代码预览的相关行数默认值修改为12 增加定位时将代码窗体最大化...
  • arcgis 10 破解文件

    2012-12-03 15:13:34
    在随后弹出的ArcGIS Administrator窗口中,点击左侧的Availability,右侧显示很多项目(Feature)且数量为2048(VBA除外),过期显示为permanent(永久,不过期)即表示一切正常。点击OK关闭窗口。 [C] 安装您的...
  • 进入总表,你会发现一个窗口,如图所示,你可以利用这个窗口上的按钮来自动完成某些功能,当然你也可以移动或关闭窗口,直接在总表中进行你能够进行的各种操作,如果你关闭了该窗口,按CTRL+W还可重新显示。...
  • 进入总表,你会发现一个窗口,如图所示,你可以利用这个窗口上的按钮来自动完成某些功能,当然你也可以移动或关闭窗口,直接在总表中进行你能够进行的各种操作,如果你关闭了该窗口,按CTRL+W还可重新显示。...
  • 使Tab键具有更快捷的上下文提示功能,从http://www.vim.org/scripts/script.php?script_id=1643 下载安装,它是个vba文件,即Vimball格式的安装包,安装方法: 1)用vim打开supertab.vba文件 2)在vim命令行下运行...
  •  1、该程序采用vba宏设计,所以EXCEL必须开启宏,相关操作:菜单项 Tools(工具) ->Macro(宏) -> Security(安全),Security level (安全等级)设置成 Low(低),确定后关闭EXCEL窗口,再重新启动EXCEL。  2、进入相应...
  • 本文使用VBA代码示例简要介绍了与Application对象相关的经常使用的对象、方法和属性,其中一些成员能够改变用户与Excel应用程序交互的方式,还能够改变应用程序的外观和式样。熟悉Application对象能够让您扩展和调整...
  • Excel百宝箱9.0无限制破解版

    热门讨论 2012-02-03 19:05:29
    【截取窗口对象】:将选定的窗口或者对象转换成图片文件,可截Excel界面和其它任意界面 【截取矩形对象】:将选定的矩形区域转换成图片文件 【截取任意区域】:将选定任意区域转换成图片文件 【删除空单元格】:删除...
  • Excel百宝箱

    2012-10-27 17:09:21
    【截取窗口对象】:将选定的窗口或者对象转换成图片文件,可截Excel界面和其它任意界面 【截取矩形对象】:将选定的矩形区域转换成图片文件 【截取任意区域】:将选定任意区域转换成图片文件 【删除空单元格】:删除...
  • aspnet公共类cs文件.rar

    2020-07-16 11:07:28
    Excel操作辅助类(无需VBA引用)(ExcelHelper.cs)利用VBA对象,导出DataView到一个Excel文档中的Excel辅助类(Export2Excel.cs)关联文件(ExtensionAttachUtil.cs)注册文件关联的辅助类(FileAssociationsHelper.cs...
  • 3.窗口管理类(ChildWinManagement.cs) 4.由马丁·米勒http://msdn.microsoft.com/en-us/library/ms996492.aspx提供一个简单的方法打印工作的一个RichTextBox一个帮手(ExRichTextBoxPrintHelper.cs) 5.显示,隐藏或...
  • WHC第三方控件

    2018-07-16 12:51:42
    3. 窗口管理类(ChildWinManagement.cs) 4. 由马丁•米勒http://msdn.microsoft.com/en-us/library/ms996492.aspx提供一个简单的方法打印工作的一个RichTextBox一个帮手(ExRichTextBoxPrintHelper.cs) 5. 显示,隐藏...
  • 【截取窗口对象】:将选定的窗口或者对象转换成图片文件,可截Excel界面和其它任意界面 【截取矩形对象】:将选定的矩形区域转换成图片文件 【截取任意区域】:将选定任意区域转换成图片文件 【删除空单元格】:...

空空如也

空空如也

1 2
收藏数 35
精华内容 14
关键字:

vba关闭提示窗口