excel vba
Kazefuku
轴承+摩擦学+VBA
展开
-
每隔十分钟弹窗提醒(Ontime函数)
在公司里面,有许多本地文件是大家一起进行使用的,有的人使用完了以后忘了关闭文件会导致下一个想用的人无法进行编辑(只读模式),只能等别人关闭文件了才可以进行编辑,给工作造成非常大的麻烦(Onedrive虽然可以同时编辑,但是无法使用VBA,所以有些文件是无法使用Onedrive的)。3.弹窗函数2里面写出弹窗及按钮,如果点击ok则保存文件,关闭excel,如果点击cancel则继续调用sub函数1,则重新开始计时。1.在VBE界面左侧的树状图里面,点击thisworkbook,然后输入以下代码。原创 2023-02-01 09:48:52 · 494 阅读 · 0 评论 -
Excel双击单元格后弹窗输入日期
在VBE界面新建一个窗体(Userform1),在窗体的工具箱的空白处右键,选中添加附件,勾选Calendar control 8.0,即可完成日历的添加。PS:遗憾的是, Office 64 位没有官方的日期选择器控件。输入以下代码,即可实现点击日历区域后将选中的日期返回选中的单元格,然后关闭窗体。接下来就是在需要该功能的worksheet里面添加代码来激活userform1.2.点击刚刚添加好的日历控件,放在Userform1里面。3.双击日历,进入日历控件的代码区。(可以用双击单元格来触发)原创 2024-03-25 22:13:43 · 1099 阅读 · 0 评论 -
获取Book里所有sheet的名字,且带上超链接
当一个excel有很多sheet的时候,来回切换sheet会比较复杂,所以我希望excel的第一页有目录,可以随着sheet的增加,减少,改名而随时可以去更新,还希望有超链接可以直接跳到该sheet。最终效果如下图所示。原创 2024-03-25 22:27:59 · 235 阅读 · 0 评论 -
VBA时间延迟/定时执行(wait函数)
应用场景:1.在excel里面,如果如下图所示,点击VBA按钮后图形立刻生成,可能会觉得不太好。假如想看到动态的过程,可以通过使用时间延迟来实现。2.或者说我想每天某个固定时间执行代码也可以。时间延迟效果如下:代码如下所示,调用了wait函数。后面的这个时间是绝对时间,不是等待的时间(比如说5秒、3秒这种)。这里代码表示的就是1秒后执行。比如现在是2022年8月12日11点27分,如果wait函数后面的时间小于现在的时间,那么函数就会立刻执行。如果写appli..原创 2022-08-12 12:55:56 · 13973 阅读 · 6 评论 -
代码运行过程中禁用鼠键
当代码量特别大的时候,如果代码会因为鼠标或者键盘的操作导致代码运行出现bug,就可以在主代码运行之前加上。记住一定要在最后复原,不然会导致代码运行完了,鼠标键盘还是无法操作的情况,最后只能强行关闭excel程序。如果没有禁用鼠键,效果如下所示,可以看到鼠键是十字架,点哪儿,哪儿会记入i值。以下动态图可以看出,禁用鼠键后,鼠标的图标变成了沙漏,代表着无法操作。...原创 2022-08-12 09:25:43 · 321 阅读 · 0 评论 -
VBA解锁/上锁worksheet和workbook
应用背景:在一些excel里面,我们对数据进行了保护,worksheet和workbook都进行了上锁。但是在执行VBA的时候,需要对单元格进行写入,所以需要暂时解锁worksheet或者workbook。以下代码就实现了解锁和上锁的功能,一个是上锁,一个是解锁。可以在sub里面先调用unlock_password子过程,然后进行excel的写入操作,最后再调用lock_password子过程即可。以上...原创 2022-06-10 16:10:24 · 2082 阅读 · 2 评论 -
复制/剪切/指定文件到指定路径,删除指定文件
如果想把excel表格中的文件批量复制到另一个指定的路径,可以用fso来完成。1.复制————————fs.copyfile target path ,destination path2.剪切————————fs.movefile target path ,destination path3.删除————————fs.deletefile target pathSub Copy_File()Set fs = CreateObject("Scripting.FileSystemObject原创 2022-05-13 19:00:58 · 2488 阅读 · 0 评论 -
选取文件夹,获取全部次级文件并加上超链接
Sub File_Dir_HyperLink()Dim MY_path, str, File_pathDim ObJ Columns("A:A").Select Selection.ClearContentsWith Application.FileDialog(msoFileDialogFolderPicker) .Title = "ABCD" If .Show = True Then MY_path = .SelectedItems(1) .原创 2022-05-13 15:57:30 · 330 阅读 · 0 评论 -
选取文件夹,获取全部次级文件夹并加上超链接
应用场景:比如说我想知道D盘下所有文件夹的清单(假如有上百个),在excel中罗列出来,如果能批量加上超链接就更好了!应用场景:比如说我想知道D盘下所有文件的清单(假如有上百个),在excel中罗列出来,如果能批量加上超链接就更好了!和下面这个几乎一样,区别就是一个是获取文件夹,一个是获取文件。https://blog.csdn.net/m0_59951054/article/details/124752730https://blog.csdn.net/m0_59951054/art原创 2022-05-13 15:56:11 · 508 阅读 · 0 评论 -
VBA批量获取网页—ID or Name
Sub IEinput() Application.ScreenUpdating = FalseDim objIE As Object Set objIE = GetObject("", "InternetExplorer.Application") objIE.Visible = True objIE.Navigate "https://www.baidu.com/" ' このURLを任意に変更 ' ページの.原创 2022-05-13 14:45:34 · 1102 阅读 · 0 评论 -
通过excel填写,批量记入网页
应用背景:假如现在需要在网页中进行计算,需要填写很多参数(很多参数其实几乎是固定的)每次填写地话,就会浪费时间。可以通过excel的表单,打开网页,批量记入,实现效率化。1.首先在一个sheet里面记入B列的数据,C列是网页元素的name/Id。查找方法可以参考以下链接,如果有很多项目需要记入。一个一个找name就比较麻烦了,可以通过批量提取来进行。可以自行百度。本次只做例子,只做了4个,name已经获取并记入C列。CSDNhttps://mp.csdn.net/mp_blog/cr原创 2022-03-31 18:28:34 · 2998 阅读 · 0 评论 -
VBA_选择Folder_读取特定文件
Sub Life_read() Dim FileType, Prompt, Item As String Dim LifeFile_Path As Variant Dim life_csv Dim a$ LifeFile_Path = SelectFileNamePath(FileType, Prompt) 'システム関数を使って定義関数 a = Left(Trim(LifeFile_Path), InStrRev(Trim(LifeFile_Pa.原创 2022-03-31 17:15:06 · 2213 阅读 · 0 评论 -
VBA-复制代码后注释/路径乱码的情况
VBA复制乱码原创 2022-03-30 14:27:13 · 1558 阅读 · 0 评论 -
VBA—压缩文件夹成一个ZIP压缩包
应用背景:上篇文章说到如果在一项工作中需要自动生成很多文件,然后再压缩 ,然后再进行上传等操作。每次都手动压缩会很麻烦,所以可以加一点代码进行自动压缩Zip文件。遗留问题:如果只能上传ZIP文件,无法使用rar文件,那么该怎么办呢?1.再VBE内新建一个模块,插入以下代码。 Print #1, Chr$(80) & Chr$(75) & Chr$(5) & Chr$(6) & String(18, 0)这一段貌似是打印机的编码转换,意义不是很清楚;..原创 2022-03-30 10:13:33 · 2334 阅读 · 0 评论 -
VBA—压缩文件夹成一个rar压缩包
应用背景:如果在一项工作中需要自动生成很多文件,然后再压缩 ,然后再进行上传等操作。每次都手动压缩会很麻烦,所以可以加一点代码进行自动压缩rar文件。说明:1.思路就是调用cmd来做.(winrar程序路径 a 目标 源文件)其中a就是压缩的意思。2.整体比较简单,就是如果你的winrar不是安装在本次代码的路径C:\program files\winrar\winrar下的话,自己替换成适合你的即可。问题?本次项目只能上传ZIP文件,无法使用rar文件,那么该怎么办呢?...原创 2022-03-30 13:57:11 · 1514 阅读 · 2 评论 -
VBA获取代码使用者IP+姓名+电脑编号+使用时间
应用背景:比如说你开发了一个excel工具,想统计一下应用实绩。(在一段时间内,谁在什么时候使用了该工具。)最后可以统计一年中,该工具一共被使用多少次。1.先在D盘新建一个excel(user_log.xlsx)。(名字及存储位置自定义)2.然后使用下面的代码。Option ExplicitSub User_Log_Record()Dim ip_1$, j, strcomputer, objwmi, coliP, IP, computer_name, iWorkbooks.Ope原创 2022-03-28 13:28:28 · 2077 阅读 · 2 评论 -
VBA_自定义对数函数
在excel里面是自带对数函数=LOG(数値, [底])自然对数=LN(数 値)这些都是OK的,但是假如我现在需要自定义一个函数可以在模块里面自定义函数。由于VBA中没有对数函数,所以直接输入log(x,2)会报错,这个时候只需要在对数前面输入application.→就是调用excel自带的函数,即可实现自定义函数中适用对数的功能。Public Function zidingyi(x)exx = x * x * x + Application.Log(x,原创 2022-03-28 12:54:23 · 2402 阅读 · 0 评论 -
Excel模糊查找+数据透视
比如有如下图所示的数据(可能有几百上千行),我想通过输入客户名/产品型号/价格来进行一个模糊查找(比如我输入腾或者P就可以找到腾讯和PDD)。由于本次制作示例,就以客户为例来做。0.选中数据,ctrl+T进行快速表格创建。1.在D2输入=search(寻找数,数据库),由于寻找数就一个数,所以需要加绝对引用($B$1这样)。然后向下填充即可。比如sheet5的B1这次是"淘",所以D2是在本表格A2里面去找"淘",显然D2找不到就会返回#value(一般是公式中的错误参数所致);3行原创 2022-03-27 21:31:32 · 1292 阅读 · 0 评论