2022-08-05 09:11来源:m.sf1369.com作者:宇宇
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Application.OnTime Now + TimeValue(00:10:00), bc
End Sub
以上代码复制到sheet代码区
Public Sub bc()
m = ActiveWorkbook.Path
i = Year(Now) & 年 & Month(Now) & 月
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:=m & \\ & i & .xlsm, _
FileFormat:=xlOpenXMLWorkbookMacroEnabled, CreateBackup:=False
End Sub
以上代码放到模块里面
以上方法使用了另存法,没10分钟另存一次按照当前年月命名,直接覆盖原来文件,当前月份变动时候就没有可以覆盖的文件了,直接另存,循环操作的
我用的是2007 如果是03版本的话将文件后缀改为.xls即可
不知道你讲的空母文件什么意思,不论什么时候打开代码所执行的是一样
至于丢失前面的数据,不太明白你的意思,代码是引用了系统的当前日期提取的年、月,应该跟你将的没有直接联系。已经加你了 白杨
下面的例子代码,你可以参考:
Option Explicit
Sub xxx()
Dim c As Range
Set c = Selection.Cells(1, 1)
Range([c5], c).Select
End Sub
通过VBA中的函数sheets(!workbook.worksheet).select,就可以将当前的文件指针指向所选的工作薄中的指定工作表。
参数说明:
workbook为工作簿名即文件名
worksheet为工作表名
当文件指针设定好后,就可以对指定文件的指定工作表进行操作了。
这个楼主可以录制宏
筛选-包含前六个字符,然后复制到对应的sheet内
另外就是使用for循环+字典
以前六个字为字典关键字,使用union进行组合
然后再分批拷贝到对应的sheet里
展开全部
h = Range(f65536).End(xlUp).Row + 1
把Sheet1.删除了,这个会特指kkk文件中的Sheet1(在VBA窗口的左上窗口里,没个Sheet都有一个“(Name),不是”Name,后者是工作表的名字(在Excel里的显示名字),前者是VBA中的名字。
软件版本:Office2007
方法如下:
1.在Excel中按下快捷键Alt+F11,就会打开VBA编辑界面:
2.输入代码后,按F5或者点击图示三角:
3.如果光标在程序内部,则会立即执行程序,如果是在外部,则会出现如下提示,选择要制定的宏明,在点击”运行“:
4.也会运行程序: