永发信息网

请问宏命令运行时,为什么打开了有很多公式的另外一个excel表后,运行就变得好慢

答案:2  悬赏:10  手机版
解决时间 2021-02-04 02:57
  • 提问者网友:情歌越听越心酸
  • 2021-02-03 05:58
请问宏命令运行时,为什么打开了有很多公式的另外一个excel表后,运行就变得好慢,可是运行的内容根本不管其他表格的事啊,怎样让他只对当前excel表有效,从而加快运行速度。

如下,我只要在名为A.xlsm中的 B 工作表中运行就好,如何实现,谢谢!

Sub 宏()

Application.ScreenUpdating = 0
Dim cel As Range
On Error Resume Next
For Each cel In Range(Cells(Selection.Row, 1), Cells(Selection.Row, 200))
If (InStr(cel, ":") > 0 And IsDate(cel)) Then
cel = Format(TimeValue(cel) + 1 / 48, "'h:mm") & ""
ElseIf cel.NumberFormat = "h:mm" Or cel.NumberFormat = "h:mm;@" Then cel = Format(cel + 1 / 48, "'h:mm") & ""
End If
Next
End Sub

补充一下,以上代码是实现当前行所有时间批量增加半小时
最佳答案
  • 五星知识达人网友:西岸风
  • 2021-02-03 06:55
试试,在宏代码前面加上:
Application.Calculation = xlCalculationManual   ‘手动重算
在代码最后加上:
Application.Calculation = xlCalculationAutomatic  '自动重算
Sub 宏()
Application.Calculation = xlCalculationManual
Application.ScreenUpdating = 0
Dim cel As Range
On Error Resume Next
For Each cel In Range(Cells(Selection.Row, 1), Cells(Selection.Row, 200))
If (InStr(cel, ":") > 0 And IsDate(cel)) Then
    cel = Format(TimeValue(cel) + 1 / 48, "'h:mm") & ""
ElseIf cel.NumberFormat = "h:mm" Or cel.NumberFormat = "h:mm;@" Then cel = Format(cel + 1 / 48, "'h:mm") & ""
End If
Next

Application.Calculation = xlCalculationAutomatic
End Sub
全部回答
  • 1楼网友:你哪知我潦倒为你
  • 2021-02-03 08:05
一、创建宏 启动excel,依次选择“工具”—“宏”—“录制新宏”,在打开的窗口中输入宏的名称,并把“保存在”项设为“个人宏工作簿”,单击“确定”按钮进入宏录制模式。此时我们可以在当前窗口中看到宏录制的工具栏,单击“停止录制”退出宏的录制。 退出后,在excel中按下“alt+f11”键,在打开的vb编辑窗口中选择“vbaproject(personal.xls)”—“模块”—“模块1”,然后将右侧窗口中的内容替换成: sub 密码保护() //宏的名称 activesheet.unprotect ("888888") //默认密码 cells.select selection.locked = false selection.specialcells(xlcelltypeformulas, 23).select selection.locked = true selection.formulahidden = true activesheet.protect ("123456") activesheet.enableselection = xlunlockedcells end sub 做好之后保存设置退出编辑窗口。当然,在自己的excel中,还是要将默认的888888换成自己的密码,以免造成泄露。 二、应用宏 在excel中打开“工具”菜单中的“自定义”命令,在“命令”选项卡的“类别”中选择“宏”,在“命令”中选择“自定义按钮”,并将其拖放到工具栏上,单击工具栏上的按钮,在弹出的窗口中选择我们创建的宏名并保存设置。 至此,我们要加密时只需单击该按钮,就可以将当前工作表保护起来,并且默认密码为888888,怎么样这样的操作是不是够方便呢。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯