精华内容
下载资源
问答
  • WPS 中没有启动宏,可能通过安装VBA 宏模块启用宏,安装后再打开就会有提示启用和禁用宏
  • 前景提要()在我们学习VBA保护数据工作薄的过程中,大家一定有不少的疑问,因为很多人都说,依靠工作薄的文件来保护数据是非常的不合理的,因为这个功能是能够被禁用的,确实是这样,现在很多的电脑都已经默认...

    前景提要()

    在我们学习VBA保护数据工作薄的过程中,大家一定有不少的疑问,因为很多人都说,依靠工作薄的宏文件来保护数据是非常的不合理的,因为宏这个功能是能够被禁用的,确实是这样,现在很多的电脑都已经默认禁用了宏功能,导致很多的童鞋在最初接触VBA的时候会发现自己的电脑完全没有VBA的模块,就是因为宏被禁用的缘故,那么既然宏能够被禁用,那么是不是我们之前学习的保护工作薄的方式也会被禁用呢?不是的,我们可以设置在禁用宏的情况下,工作薄的内容是不可见的。

    场景模拟

    今天好像没有什么场景模拟的必要了,直接上代码吧

    代码区

    第一步,我们需要创建一个sheet,为了后续代码的方面,我们就叫他检测吧,检测电脑是否打开了宏,可以是一个空白的sheet

    287c804393e003cb6bf5f3209cda523e.png

    我们的关键数据在sheet1这个工作薄中

    b6358da729c6663fc7ef7afdc49e08d7.png

    第一段代码

    Sub openss() Dim wksInfoSheet As Worksheet Dim objSheet As Object On Error Resume Next Set wksInfoSheet = ThisWorkbook.Worksheets("检测") If wksInfoSheet Is Nothing Then MsgBox "不能够找到工作表
    展开全文
  • VBA Excel常用操作

    千次阅读 2011-08-10 20:52:45
    Application.EnableEvents= True/ False ’启用/禁用所有事件   Application.DisplayAlerts=True/False ’显示/关闭警告框提示框   Application.ScreenUpdating= True/
    Application.EnableEvents= True/ False ’启用/禁用所有事件
     
    Application.DisplayAlerts=True/False ’显示/关闭警告框提示框
     
    Application.ScreenUpdating= True/False ’显示/关闭屏幕刷新
     
    Application.StatusBar = "软件报专用"   ’在地址栏中显示文本,标题栏用Caption属性
     
    Application.Cursor = xlIBeam   ‘设置光标形状为Ⅰ字形,xlWait为沙漏(等待)形,xlNormal为正常
     
    Application.WindowState = xlMinimized ‘窗口最小化,xlMaximized最大化,xlNormal为正常
     
    Application.ActivateMicrosoftApp xlMicrosoftWord ’开启Word应用程序
     
    Application.TemplatesPath ‘获取工作簿模板的位置
     
    Application.CalculateFull ’重新计算所有打开的工作簿中的数据
     
    Application.RecentFiles.Maximum = 2 ’将最近使用的文档列表数设为2
     
    Application.RecentFiles(3).Open ’打开最近打开的文档中的第3个文档
     
    Application.AutoCorrect.AddReplacement "sweek", "软件报"    ’自动将输入的"sweek"更正为"软件报"
     
    Application.Dialogs(xlDialogPrint).Show ‘显示打印文档的对话框
     
    Application.OnTime Now + TimeValue("00:00:45"), "process" ’45分钟后执行指定过程
     
    Application.OnTime TimeValue("14:00:00"), " process "   ’下午2点执行指定过程
     
    Application.OnTime EarliestTime:=TimeValue("14:00:00"), _
     
    Procedure:="process", Schedule:=False    ’取消指定时间的过程的执行
     
    工作簿/工作表篇
     
    ActiveWorkbook.Sheets.Count ’获取活动工作薄中工作表数
     
    ActiveWorkbook.LinkSources(xlExcelLinks)(1) ‘返回当前工作簿中的第一条链接
     
    ThisWorkbook.Worksheets(“sheet2”).Visible=xlSheetHidden ‘隐藏工作表,与在Excel菜单中执行“格式—工作表—隐藏”操作一样
     
    ThisWorkbook.Worksheets(“sheet2”).Visible=xlSheetVeryHidden ‘隐藏工作表,不能通过在Excel菜单中执行“格式—工作表—取消隐藏”来重新显示工作表
     
    ThisWorkbook.Worksheets(“sheet2”).Visible=xlSheetVisible ‘显示被隐藏的工作表
     
    ThisWorkbook.Sheets(1).ProtectContents ‘检查工作表是否受到保护
     
    ActiveSheet.Columns("B").Cut
     
    ActiveSheet.Columns("F").Insert ‘以上两句将B列数据移至F列,原C列后的数据左移
     
    ActiveSheet.Range(“A:A”).EntireColumn.AutoFit ‘自动调整当前工作表A列的列宽
     
    ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlTextValues) ‘选中当前工作表中常量和文本单元格
     
    ActiveSheet.Cells.SpecialCells(xlCellTypeConstants,xlErrors+xlTextValues) ‘选中当前工作表中常量和文本及错误值单元格
     
    ActiveSheet.UsedRange.Rows.Count ‘当前工作表中已使用的行数
     
    ThisWorkbook.Worksheets.Add ThisWorkbook.Worksheets(3), , 2   ‘在第3张工作表之前添加2个新的工作表
     
    ActiveSheet.Move After:=ActiveWorkbook. _
     
    Sheets(ActiveWorkbook.Sheets.Count) ’将当前工作表移至工作表的最后
     
    Worksheets(Array(“sheet1”,”sheet2”)).Select ’同时选择工作表sheet1和sheet2
     
    ActiveSheet.UsedRange.FormatConditions.Delete ‘删除当前工作表中应用的条件格式
     
    Cells.Hyperlinks.Delete ‘取消当前工作表中所有单元格的超链接
     
    ActiveSheet.PageSetup.RightFooter=ActiveWorkbook.FullName ‘在页脚显示文件的路径
     
    ActiveSheet.PrintPreview Enablechanges:=False ‘禁用显示在Excel的“打印预览”窗口中的“设置”和“页边距”按钮
     
    单元格/单元格区域篇
     
    ActiveSheet.UsedRange.Row ‘获取已使用的单元格区域的第一行的行号
     
    Range(“A65536”).End(xlUp).Row ‘返回A列最后一行(即记录的总条数)
     
    cell.Range(“A1”).HasFormula ‘检查单元格或单元格区域中的第一个单元格是否含有公式或cell.HasFormula ‘工作表中单元格是否含有公式
     
    Target.EntireColumn.Select ‘选择单元格所在的整个列,Target.EntireRow.Select为选择单元格所在的整行
     
    ActiveCell.Row ‘活动单元格所在的行号,ActiveCell.Column为活动单元格所在的列数
     
    ActiveWindow.ScrollRow = 2 ’将当前工作表窗口滚动到第2行
     
    ActiveWindow.ScrollColumn = 5 ’将当前工作表窗口滚动到第5列
     
    Worksheets("sheet1").Range("A1:C5").CopyPicture xlScreen, xlBitmap ’将指定的单元格区域的内容复制成屏幕快照
     
    Selection.Hyperlinks.Delete ‘删除所选区域的所有链接
     
    ActiveSheet.Cells(1, 1).Font.Bold = TRUE ‘Bold属性用于设置字体是否为加粗, Size属性设置字体大小, ColorIndex属性设置字体颜色(其值为颜色索引号), Italic属性设置字型是否为倾斜, Name属性设置字体名称
     
    ActiveSheet.Cells(1, 1).Interior.ColorIndex = 3 ‘将单元格的背景色设置为红色
     
    IsEmpty (ActiveCell.Value) ’判断活动单元格中是否有值
     
    ActiveCell.Value = UCase(ActiveCell.Value) ’将当前单元格中的字符转换成大写
     
    ActiveCell.Value = StrConv(ActiveCell.Value, vbLowerCase) ’将活动单元格中的字符串转换成小写
     
    ActiveCell.CurrentRegion.Select ’选择当前活动单元格所在的连续的非空区域,也可以用Range(ActiveCell, UsedRange.End(xlDown)).Select
     
    ActiveCell.Offset(1,0).Select ’活动单元格下移一行
     
    Range(“B2”).Offset(ColumnOffset:=1)或Range(“B2”).Offset(,1) ‘读取指定单元格右侧单元格中的数据
     
    Range(“B2”).Offset(Rowoffset:=-1)或Range(“B2”).Offset(-1) ‘读取指定单元格上一行单元格中的数据
     
    Range(“A1”).Copy Range(“B1”) ’复制单元格A1中的内容到B1中
     
    Range(“A1:D8”).Copy Range(“H1”) ’将指定单元格区域复制到从H1开始的区域中,用Cut方法可以实现剪切操作
     
    ActiveWindow.RangeSelection.Value = "软件报" ’将指定字符串输入到所选单元格区域中
     
    窗体(控件)篇
     
    Option Explicit ’强制对模块内所有变量进行声明
     
    Userform1.Show ‘显示用户窗体
     
    Load Userform1 ‘加载一个用户窗体,但该窗体处于隐藏状态
     
    Userform1.Hide ‘隐藏用户窗体
     
    Unload Userform1 或 Unload Me ‘卸载用户窗体
     
    Me.Height=Int(0.5 * ActiveWindow.Height) ‘窗体高度为当前活动窗口高度的一半,宽度用ActiveWindow. Width属性
     
    UserForm1.ComboBox1.AddItem Sheets("Sheet1").Cells(1, 1) ‘将指定单元格中的数据添加到复合框中
     
    ListBox1.List=MyProduct() ‘将数组MyProduct的值添加到列表框ListBox1中
     
    ListBox1.RowSource=”Sheet1!isum” ‘将工作表Sheet1中名为的isum区域的值添加到列表框中
     
    ListBox1.Selected(0) ‘选中列表框中的指定的条目
     
    ListBox1.RemoveItem ListBox1.ListIndex ‘移除列表框中选中的条目
     
    If MsgBox(“要退出吗?”,vbYesNo)<>vbYes Then Exit Sub ’返回值不为“是”,则退出
     
    Config=vbYesNo+vbQuestion+vbDefaultButton2 ’使用常量的组合,赋值组Config变量,并设置第二个按钮为缺省按钮 
     
    MsgBox “This is the first line.” & vbNewLine & “Second line.” ’在消息框中强制换行,也可用vbCrLf代替vbNewLine。
     
    MsgBox "平均值为:"&Format(Application.WorksheetFunction.Average(Selection),"#,##0.00"),vbInformation, "显示选区平均值" ’应用工作表函数返回所选区域的平均值并按指定显示的格式
     
    公式与函数
     
    Application.WorksheetFunction.IsNumber(“A1”) ’检查指定单元格中的数据是否为数字
     
    Range(“A:A”).Find(Application.WorksheetFunction.Max(Range(“A:A”))).Activate 
     
    ’激活单元格区域A列中最大值的单元格
     
    Application.MacroOptions Macro:=”GetSum”,Category:=4 ‘将自定义的GetSum函数指定给Excel中的“统计函数”类别
     
    Application.MacroOptions Macro:=” GetSum”, _
     
    Description:=”先求和,然后再输出。” ‘为自定义函数GetSum进行功能说明
     
    Application.WorksheetFunction.CountA(Cell.EntireColumn) ‘返回该单元格所在列非空单元格的数量,所在行使用EntireRow属性
     
    Application.WorksheetFunction.CountA(Cells) ‘返回当前工作表中非空单元格数量
     
    图表篇
     
    ActiveSheet.ChartObjects.Delete ‘删除工作表中所有的ChartObject对象
     
    ActiveWorkbook.Charts.Delete ‘删除当前工作簿中所有的图表工作表 ActiveSheet.ChartObjects.Count ’获取当前工作表中图表的个数
     
    Worksheets("Sheet1").ChartObjects(1).Chart. _
     
    Export Filename:="C:\MyChart.gif", FilterName:="GIF" ‘将指定工作表中的图表1导出到C盘上并命名为MyChart.gif

    展开全文
  • 在 另外,我也不能从以编程方式打开的工作簿中运行(例如,如果我手动尝试)。但是,如果我手动打开工作簿,一切正常。在 我在64位系统Windows10上运行Python3.6.5。在 Python: ^{pr2}$ VBA:Public Sub test() ...

    尝试通过Python运行Excel宏时,出现以下错误:Traceback (most recent call last):

    File ".\test.py", line 17, in

    xlApp.Application.Run(MACRO)

    File ">", line 14, in Run

    File "C:\Users\twauchop\Desktop\Python\virtual_envs\gutenberg\lib\site-packages\win32com\client\dynamic.py", line 287, in _ApplyTypes_

    result = self._oleobj_.InvokeTypes(*(dispid, LCID, wFlags, retType, argTypes) + args)

    pywintypes.com_error: (-2147352567, 'Exception occurred.', (0, 'Microsoft Excel', "Cannot run the macro 'test'. The macro may not be available in this workbook or all macros may be disabled.", 'xlmain11.chm', 0, -2146827284), None)

    我尝试了other questions中建议的许多修复方法。在

    我试了'xlApp.Application.Run(wb.name + "!" + MACRO)'。在

    这是命名约定问题吗?我通过信任中心启用了所有功能,并将VBA sub更改为public。在

    另外,我也不能从以编程方式打开的工作簿中运行宏(例如,如果我手动尝试)。但是,如果我手动打开工作簿,一切正常。在

    我在64位系统Windows10上运行Python3.6.5。在

    Python:

    ^{pr2}$

    VBA:Public Sub test()

    MsgBox "Hello World!"

    End Sub

    展开全文
  • vba6.3是从WPS2012中提取出来的插件包,由于WPS个人版中没有VBA宏功能,所以需要编辑功能的,就需要安装这个插件,安装后可以使用功能了,WPS Excel中的”“就可以正常使用了。打开WPS工作簿时出现可能是...
  • 或者是编辑的VBA代码含有定期删除指令,为了保证工作簿的安全性,和防止他人禁用宏造成知识产权法受到侵害,需要强制用户启用宏。看过以下三篇文章的小伙伴也提出同样的问题。《Excel科幻电影效果,文件倒计时销毁...

    知识改变命运,科技成就未来。

    当Excel工作簿中含有VBA代码时,用户在使用时需要启用宏,否则工作簿的某些功能就会失效。或者是编辑的VBA代码含有定期删除指令,为了保证工作簿的安全性,和防止他人禁用宏造成知识产权法受到侵害,需要强制用户启用宏。看过以下三篇文章的小伙伴也提出同样的问题。

    《Excel科幻电影效果,文件倒计时销毁功能,网友直呼太科幻

    Excel工作表打开一次后自动销毁文件,回收站中都找不到

    Excel工作簿自动销毁功能,使用时间到期后自动删除文件

    d8b9fc525fdada64b134f438f00e08b3.png经过两天的深思熟虑终于找到解决问题办法。思路是通过编辑VBA代码,打开Excel工作簿后自动检测宏是否被启用,如果宏处于禁用状态,工作簿会自动隐藏关键数据所在的工作表,此处的隐藏属于深度隐藏,无法直接取消隐藏工作表。

    0c7568a1f4832eb6d6ecf011ea6a3447.gif

    步骤一:打开Excel工作簿后,再插入一个新的工作簿Sheet2用来存放关键数据,Sheet1作为提示工作簿,主要功能是提示用户必须强制启用宏和启用宏的方法,否则隐藏关键数据所在的工作表。

    Excel在打开含有宏的工作簿时,会提示用户是否启用宏,如果没有做任何提示,此时就需要用户自己动手启用。启用宏的操作步骤依次是:文件→选项→信任中心→信任中心设置→宏设置→启用所有宏→确定。

    783c384f4e2adc0e2623316e329bb551.gif

    步骤二:接下来就是编辑VBA代码,打开Visual Basic编辑器后,将以下代码复制粘贴到ThisWorkbook代码窗口中,最后对VBAProject进行加密处理,主要是保护VBA代码不被删除或更改,以保证整个工作簿的安全性。设置完成后关闭Visual Basic编辑器回到工作簿操作界面。

    758f3916ed1be9b5213b08657c643346.gif

    代码区域:

    Option Explicit

    Private Sub Workbook_BeforeClose(Cancel As Boolean)

    Dim sh As Worksheet

    Sheet1.Visible = True

    For Each sh In Me.Worksheets

    If UCase(sh.Name) <> "SHEET1" Then sh.Visible = xlSheetVeryHidden

    Next sh

    Me.Save

    End Sub

    Private Sub Workbook_Open()

    Dim sh As Worksheet

    For Each sh In Me.Worksheets

    If UCase(sh.Name) <> "SHEET1" Then sh.Visible = True

    Next sh

    Sheet1.Visible = xlSheetVeryHidden

    End Sub

    0983153eb18da22b13aec441124c809a.png步骤三:工作簿的存储也非常重要,需要将Excel工作簿另存为【*.xls】格式或【*.xlsm】格式,因为【*.xlsx】格式无法识别带有宏的工作表,保存后宏会自动清除。

    需要注意的是,在宏禁用的情况下,默认隐藏的是除Sheet1工作表之外的其他工作表,请勿将重要数据存放在Sheet1工作表之中。当启用宏后,工作簿会自动隐藏Sheet1工作表。

    2b2645663b13a1af1abc77ae56222289.gif

    至此,Microsoft Excel强制用户启用宏的操作方法已经介绍完毕。如果对操作过程有些费解,请浏览查阅前三篇文章获取答案,也许会有不一样的效果。如果感兴趣可以结合前三篇文章的内容,制作属于自己的工作簿,相信您定会让他人大吃一惊。

    动动手指点击关注和转发,让更多的人告别加班的烦恼,每天掌握一些科技小技巧,相信也会为您的工作和生活带来便捷。

    展开全文
  • C# 调用word时,禁用宏

    2019-06-12 17:10:34
    由于文档中有代码且有问题,导致打开文档时弹出vba错误提示框,致使代码阻塞 解决: c# static void Main(string[] args) { Console.WriteLine("word文件:"); var file = Console.ReadLine(); Application...
  • 大家好,我很早以前开始学习利用VBA,至今已有20多年了。开发过大小不同的VBA程序程序已经数不清了。我的平台,以传递我多年实际经验为宗旨,授人以渔,交给大家真正的VBA知识。如果大家对VBA感兴趣,认为VBA可以给...
  • VBA一招解决病毒

    2020-12-29 17:56:16
    VBA一招解决病毒 工作中,看见许多小伙伴被Excel中宏病毒折腾的无可奈何,因为要使用VBA代码...Excel选项——信任中心——信任中心设置——设置中有个选项,禁用无数字签署的所有,如下图:设置完成后保存关闭文
  • WPS的办公软件个人感觉是挺好的,...WPS表格解除宏禁用的方法上面我已经给出了插件的下载地址了,只需要下载解压,进入双击打开名称为“vba6chs.msi”的文件,就开始安装了。当安装完成就会出现“Install has comple...
  • Sub MyMacro() Application.AutomationSecurity = 3 '禁用宏 Workbooks.Open ThisWorkbook.Path & “\1.xlsm” Application.AutomationSecurity = 2 '恢复选择 End Sub
  • VBA宏代码破解Excel密码保护

    千次阅读 2010-03-24 16:42:00
    第一步:打开该文件,先解除默认的“宏禁用”状态。方法是:把工具栏下的【】→【安全性】中的【安全级】设置为中或者为低即可。再切换到工具栏下的【】→【录制新宏】,出现“录制新宏”窗口,在“宏名”定义一...
  • 或者是编辑的VBA代码含有定期删除指令,为了保证工作簿的安全性,和防止他人禁用宏造成知识产权法受到侵害,需要强制用户启用宏。看过以下三篇文章的小伙伴也提出同样的问题。Excel科幻电影效果,文件倒计时销毁功能...
  • 展开全部wps禁用打开方法:1、首先,我们打开一个WPS Excel表格,然后在里面我们可以看到,62616964757a686964616fe58685e5aeb931333366303836一般的话,在wps里,宏都是默认被禁用的。2、要启用WPS中的,那么...
  • 本教程基于《Excel VBA程序设计基础》主编 杨惠,南京大学出版社 操作步骤 1、 打开Excel,点击“文件”→“选项”→“自定义功能区”→勾选“开发工具”→点击“确定”按钮,关闭对话框。 2、 点击...
  • 在默认情况下,Word宏的安全性设置为“高”,当运行Word宏命令时会自动禁用宏。如果将Word宏安全性设置为“中”,则每次运行Word宏会弹出Word宏安全警告对话框。而如果把Word宏的安全性设置为“低”来取消安全警告,...
  • 如果要把我们做好的带VBA代码的文件发给同事、客户使用,他们的电脑上有可能禁用的。这时候我们可能会选择远程指导开启或者网上找个介绍开启的链接发给对方,让对方照着步骤开启。如果涉及到的人数特别多...
  • wps表格的禁用问题

    万次阅读 2017-09-23 13:26:02
    1。wps表格报错先要安装wps的插件–vba下载地址:
  • EXCEL 打不开 安全警告 禁用

    万次阅读 2009-12-14 15:52:00
    前几天遇到的一个问题: 一个excel (){function onclick(){tagshow(event)}}">vba项目,将其挂在一台服务器上,由公司其他机器访问(非并发),经测试有2/3的机器正常,但另外一些却都出现了同样的问题,即后台程序...
  • 如果要把我们做好的带VBA代码的文件发给同事、客户使用,他们的电脑上有可能禁用的。这时候我们可能会选择远程指导开启或者网上找个介绍开启的链接发给对方,让对方照着步骤开启。如果涉及到的人数特别多...
  • 可能是因为该在工作薄中不可用,或者所有的宏都被禁用。2.下载vba6.3提取自wps2012专业增强版 地址: http://download.csdn.net/download/q915730058/102200473.双击安装4.你再重新你的操作就可以了...
  • VBA的一些问题

    2021-02-01 15:52:26
    然后,由于之前VBA宏可以传播病毒,所以默认是禁用宏的……如果你给电脑小白装了一个宏,会给你一个“这个文件可能有毒”的提示…… 第二,EXCEL不开源,所有操作速度慢——而且奇慢无比。 我用PYTHON的xlwt操作...
  • 如何保护VBA作品

    千次阅读 2010-10-27 16:59:00
    VBA工程设置密码->防止强制中断方式查看VBA代码->禁用宏则关闭Excel文件->设置工程不可查看->限制工作簿的使用次数
  • 浅学Excel VBA

    2018-01-17 17:32:03
    1. Excel默认禁用宏,需手动启用 2. 查看宏 3. 写个简单宏:弹窗 Sub Hello() MsgBox ("Hello,world!") End Sub 4. 将该宏的执行添加到菜单栏 5. 点击刚刚添加的笑脸小图标,...
  • 默认启用

    2019-01-29 16:28:07
    在excel“信任中心”的“设置”中,有“启用所有”、“禁用所有,并且不通知”、“禁用所有,并发出通知”、“禁用无数字签署的所有”等4个设置选项。 同如何用vba开启“信任对vba工程对象模型的访问”?...
  • VBA果然很强大

    2018-11-22 18:33:00
    1、我的是office 2007,新建空白文档-开发工具 -visual basic -project -thisDocument - Document_Open ,写入以下代码(并另存为word 97-2003文档) ...重新打开word,cmd也运行了(我的word未禁用宏)。 ...
  • 问题如下:   解决: 下载一个vba插件启用“”的功能。 参考: http://dl.pconline.com.cn/download/470217.html vba的下载链接: 1、http://pan.baidu.com/s/1bnvoigJ 2、

空空如也

空空如也

1 2 3 4 5
收藏数 84
精华内容 33
关键字:

vba禁用宏