答案 0 :(得分:2)
如果您习惯性地使用 Ctrl + s ,那么重写该按键组合可能是不明智的。但是,通过将新的Save-As-CSV分配给 Ctrl + Shift + S ,没有什么可以阻止您扩展其实用性。< / p>
放置以下内容的最佳位置将取决于您的个人情况,其中几乎没有提供。建议使用 Personal.xlsb ;嵌入到启用宏的模板是另一种模式,当然,您只需将它们放入当前正在处理的工作簿中的模块代码表中。
Sub no_training_wheels(Optional ws As Worksheet)
Dim fn As String
If IsEmpty(ws) Then Set ws = ActiveSheet
With ws
.Activate
If CBool(Application.CountA(.Cells)) Then
If CBool(Len(.Parent.Path)) Then
fn = .Parent.Path & Chr(92) & Left(.Parent.Name & Chr(46), InStr(1, .Parent.Name, Chr(46)) - 1)
Else
fn = Application.GetSaveAsFilename( _
InitialFileName:=Environ("USERPROFILE") & Chr(92) & ActiveSheet.Name, _
fileFilter:="Comma Separated Value files (*.csv), *.csv")
If LCase(fn) = "false" Then fn = Environ("TEMP") & Chr(92) & .Name
End If
Application.DisplayAlerts = False
.Parent.SaveAs Filename:=fn, FileFormat:=xlCSV, Local:=True
Application.DisplayAlerts = True
End If
End With
End Sub
Sub take_training_wheels_off()
Application.MacroOptions Macro:="no_training_wheels", ShortcutKey:="S", _
Description:="Alternate Save-to-CSV without warnings"
End Sub
Sub put_training_wheels_on()
Application.MacroOptions Macro:="no_training_wheels", ShortcutKey:="", _
Description:="Alternate Save-to-CSV without warnings"
End Sub
宏有一个可选的工作表参数,可以将其用途扩展到其他编码例程。这也具有从宏运行对话框中的宏名称:列表中删除的效果。有两个“帮助程序”例程可用于启用和禁用 Ctrl + Shift + S 击键组合。使用 Ctrl + s 进行常规保存操作不受影响。
我从你的推断中希望避免对话和大多数来自叙述的互动'我不打扰阅读,但是每次点击否或取消时都会感到厌倦并且你很乐意接受默认设置,只希望保存为CSV,尽可能少的交互。为此,我做了一些假设。在使用例程 carte blanche 之前,您可能想要查看它们。