Excel VBA
文章平均质量分 62
璀璨_帝禹
一个喜欢编码的菜鸟~
展开
-
Excel多标签插件|VSTO
Excel多标签插件,用vb.net写的,纯粹只有Excel多标签的vsto,体积很小。压缩包中双击setup.exe或MultiTab.vsto。需求:.net 4.6.2,Excel 2010以上。原创 2024-03-28 15:18:31 · 373 阅读 · 0 评论 -
OFFICE 365 EXCEL 新函数
office 365 Excel 强大的新函数原创 2022-10-13 11:35:43 · 3684 阅读 · 1 评论 -
VBA dialogs 调用对话框
Application.Dialogs(1).Show是调用打开对话框Application.Dialogs(5或145).Show是调用另存为对话框,Application.Dialogs(6).Show是删除文档Application.Dialogs(7).Show是页面设置Application.Dialogs(8).Show是打印对话框Application.Dialogs(9).Show是选择打印机对话框Application.Dialogs(12).Show是重排窗口设置...原创 2021-11-03 12:06:35 · 1393 阅读 · 0 评论 -
EXCEL 批量导出图片
Sub ExportPictures() Dim MyShp AsShape Dim FilenameAs String For EachMyShp In Sheet1.Shapes If MyShp.Type = msoPicture Then Filename = ThisWorkbook.Path & "\"& MySh原创 2013-11-15 16:38:17 · 1323 阅读 · 0 评论 -
EXCE中GET.CELL宏函数用法
GET.CELL -->GET是得到的意思CELL是单元格的意思,就是你想得到单元格的什么东西(信息)函数定义:GET.CELL(类型号,单元格(或范围))注意:该函数不能直接在单元格里引用,即不能直接写在编辑栏的公式里,只可以写在名称里!!以下是类型号及代表的意思1 参照储存格的绝对地址2 参照储存格的列号3 参照储存格的行号4 类似 TYPE 函数5 参照地址的内容6原创 2013-11-15 16:38:14 · 2560 阅读 · 0 评论 -
VBA 全角转半角
'使用前需先选中要替换的区域 Sub代码全角转半角A方法() Dim Dic,strKey Set Dic =CreateObject("Scripting.Dictionary") '全角数字转换为半角 Dic.Add "1","1" Dic.Add "2","2"原创 2013-11-15 16:38:10 · 2637 阅读 · 0 评论 -
EXCEL中VBA禁止与启用快捷键
Private Sub Workbook_Open()With Application '禁止自动填充 .CellDragAndDrop = False '屏蔽常用工具栏剪切、复制、粘贴 .CommandBars(3).Controls("剪切(&T)").Enabled =False .CommandBars(3).Control原创 2013-11-15 16:38:04 · 2984 阅读 · 0 评论 -
EXCEL常用基础公式及操作
1、查找重复内容公式:=IF(COUNTIF(A:A,A2)>1,"重复","")。2、用出生年月来计算年龄公式:=TRUNC((DAYS360(H6,"2009/8/30",FALSE))/360,0)。3、从输入的18位身份证号的出生年月计算公式:=CONCATENATE(MID(E2,7,4),"/",MID(E2,11,2),"/",MID(E2,13,2))。4、从输入的身份证原创 2013-11-15 16:38:02 · 1186 阅读 · 0 评论 -
EXCEL VBA 跨表合并多个文件
'选择一个目录,将目录中的所有EXCEL文件导入当前工作表'这些EXCEL文件最好格式能一样,这里是每个文件是同一个格式 Sub 批量()Dim FD, str$, arrSet FD = Application.FileDialog(msoFileDialogFolderPicker)If FD.Show = -1 Then t = FD.SelectedItems(1) Else原创 2013-11-15 16:37:59 · 1389 阅读 · 0 评论 -
用VBA宏自动改变Excel宏安全级别设…
用VBA宏自动改变Excel宏安全级别设置Option ExplicitSub SetExcelVBA()'改变Excel的安全级别'使用Wscript,FileSystemObject,创建txt文件,注册表操作,VBS文件自我删除,改变Excel文件读写属性等Dim WSH As Object, ret As String, regStr As StringDim strFull原创 2013-11-15 16:37:53 · 2068 阅读 · 0 评论 -
获取LISTVIEW列表中的数据
'LISTVIEW1中有13列'因为LISTVIEW1中的所有数据,有可能是通过筛选得来的,可能通过搜索得来的'所以在这里将显示在LISTVIEW1中的数据写入数组ARR中,方便处理这些数据Dim arrWith ListView1ReDim arr(1 To .ListItems.Count, 1 To 13)For i = 1 To UBound(arr, 1) '遍历所有LIST原创 2013-11-15 16:37:49 · 3137 阅读 · 0 评论 -
EXCEL自定义函数求1000以内的质数
EXCEL自定义函数求1000以内的质数自定义函数=ZS(ROW(A1))下拉 自定义函数代码Function ZS(s%)Dim f As Boolean, arr(), a%, i%ReDim Preserve arr(1)arr(0) = 2For i = 3 To 999 Step 2 For j = 2 To i - 1 If i Mod j = 0原创 2013-11-15 16:37:45 · 2640 阅读 · 0 评论 -
VBA LISTBOX初始化代码
Private Sub UserForm_Initialize()Dim lsb As WorksheetSet lsb = Sheets("临时表")X = lsb.[a65536].End(3).RowWith ListBox1.ColumnCount = 7 '设置7列.ColumnWidths = "30,70,70,70,70,70,50" '设置每列宽度.ColumnHe原创 2013-11-15 16:37:43 · 6132 阅读 · 0 评论 -
EXCEL 自定义函数提取字符串中的数…
自定义函数提取字符串中的数字 FunctionGetNB(rng As Range)If rng For i = 1 ToLen(rng) tmp = Mid(rng, i, 1) If IsNumeric(tmp) Or tmp Like "[+-\*\/^%)()]" And Not tmp Like"[A-Z?!~@=_,;|\[]" T原创 2013-11-15 16:37:41 · 1437 阅读 · 0 评论 -
单元格区域引用方式的小结
在使用ExcelVBA进行编程时,我们通常需要频繁地引用单元格区域,然后再使用相应的属性和方法对区域进行操作。所谓单元格区域,指的是单个的单元格、或者是由多个单元格组成的区域、或者是整行、整列等。下面,我们设定一些情形,以问答的形式对引用单元格区域的方式进行归纳。问题一:在VBA代码中,如何引用当前工作表中的单个单元格(例如引用单元格C3)?回答:可以使用下面列举的任一方式对当前工作表中原创 2013-11-15 16:37:36 · 2247 阅读 · 0 评论 -
VBA数组入门
VBA数组入门一、初识数组1、数组就是一个列表或一组数据表。我们学习数组的目的,就是为了加速我们代码的效率.2、我们如何运用数组呢?首先,必须声明数组其次,给数组赋值,可以是经过一系列的运算后再赋值给数组。最后,将数组返回到工作表区域中。最终的目的是在工作表中显示我们想要的结果。3、调试数组的手段:本地窗口我们可以通过设置Stop语句,或F8逐步执行代码,在本地窗口中观测数组的变化原创 2013-11-15 16:37:33 · 6681 阅读 · 0 评论 -
Vlookup返回多个值 自定义函数
VlookUP函数只能返回第一个值,无法返回多个值下面这个自定义函数可以解决这个问题可以这么理解,是Vlookup函数返回多个值,将其对应的所有值都列出来 FunctionLookS(rng As Range, rg As Range, i As Byte, ii As Integer)'第1参数为查找的单元格,第2参数是查找范围,第3参数为返回的列,第4参数为返回的第几个值'第1参原创 2013-11-15 16:38:19 · 3394 阅读 · 0 评论 -
VBA 读取/写入文本文件
VBA读取/写入文本文件 1、Open语句 打开方式有 Input:以读取方式打开。Output:以写入方式打开。Append:以追加方式,即添加内容到文件末尾打开。Binary:以二进制方式打开。Random:以随机方式打开,如果未指定方式,则以 Random方式打开文件。 Open pathname For mode As[#]filenumber Open原创 2013-11-15 16:38:23 · 2924 阅读 · 0 评论 -
VBA的Format函数
Format(值,格式(可选参数))一、数字格式:1、General Number:普通数字,可以用来去掉千位分隔号和无效 0 。如:Format("1,234,567.80", "General Number")="1234567.8"2、Currency:货币类型,可添加千位分隔号和货币符号,保留两位小数点。如:Format(1234567,"Currency")="¥1,原创 2013-11-15 16:38:25 · 16440 阅读 · 0 评论 -
OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 报错
OLE DB 提供程序 'Microsoft.Jet.OLEDB.4.0' 报错。提供程序未给出有关错误的任何信息SQL语句:select * fromopenrowset ('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=D:\zl\by.xls','select * from[Sheet1$]') 出现了以上的错误,主要原因是:EX原创 2013-11-15 16:38:40 · 2707 阅读 · 0 评论 -
VB / VBA 自制二维码小工具
现在二维码的使用越来越广泛了,广告、网址等等都用上了从网上找了一个二维码的控件,自己做了个小工具。 二维码可以把一串字符,不管长短(没试过最长能多长),做成二维码图片现在的的智能手机软件很多都有扫描二维码的功能,比如微信、我查查,等等。 点击下面下载相应的文件 下载: 二维码小工具-VBA写的下载: 二维码小工具-VB写的下载: 二维码控件-QRMaker1.3 控件是必须原创 2013-11-15 16:38:46 · 12685 阅读 · 1 评论 -
利用GetObject("WinMgmts:")获取系统信息
利用GetObject("WinMgmts:")获取系统信息用WMI对象列出系统所有进程:----Instance.vbs----程序代码Dim WMI,objsSet WMI = GetObject("WinMgmts:")Set objs = WMI.InstancesOf("Win32_Process")For Each obj In objsEnum1 = Enum原创 2013-11-15 16:38:12 · 3580 阅读 · 0 评论 -
EXCEL 单变量求解 解一元三次方程
目标单元格:是公式所在的单元格,也是方程所在的单元格,如图中的B1=3*A1^3-100*A1^2+300*A1-300目标值:即目标单元格的值,想要让单元格的值变成多少?即要让方程的结果等于多少 ,一般方程来说就是 =0可变单元格:即变量所在,也就是我们所说的”元“,即 "X" ,这个X是可变的,在EXCEL中很直观,就是一个单元格总体来说,这个操作,就是让EXCEL自动迭代去计算原创 2013-12-12 18:24:00 · 15489 阅读 · 0 评论 -
Excel VBA 打开百度网页输入关键字并搜索
Sub 百度搜索()'Excel VBA 打开百度网页输入关键字并搜索Dim KW, SuWith CreateObject("InternetExplorer.Application").Navigate "http://www.baidu.com/".Visible = TrueDo Until .readyState = 4DoEventsLoop'Set KW = .do原创 2013-12-05 00:55:35 · 8309 阅读 · 0 评论 -
将Excel数据写入到TXT中
将Excel中的数据,写入到TXT中,以TAB分隔,便于导入EXCEL中注意红色部分的用法,能大幅提高写入速度Sub GetDataFromExcel()Dim arr, brr, tt = Timerarr = ActiveSheet.UsedRangeReDim brr(1 To UBound(arr, 1))For a = 1 To UBound(arr, 1) brr原创 2013-11-15 16:38:53 · 2649 阅读 · 0 评论 -
用代码给VBA添加工程密码
VBA代码,给VBA添加工程密码SubAddVBProjectProtection() On Error Resume Next Set Obj =Application.VBE.ActiveVBProject ' 检查是否勾选VBA工程访问权限 If Err.Number<> 0 Then MsgBox "请勾选信任对VBA工程对象模型的访问": Exit Su原创 2013-11-15 16:38:48 · 5314 阅读 · 0 评论 -
常用的正则匹配
"^\d+$" //非负整数(正整数 + 0) "^[0-9]*[1-9][0-9]*$" //正整数 "^((-\d+)|(0+))$" //非正整数(负整数 + 0) "^-[0-9]*[1-9][0-9]*$" //负整数 "^-?\d+$" //整数 "^\d+(\.\d+)?$" //非负浮点数(正浮点数 + 0) "^(([0-9]+\.[0-9]*[1-9原创 2013-11-15 16:38:36 · 814 阅读 · 0 评论 -
正则表达式语法
正则表达式语法一个正则表达式就是由普通字符(例如字符 a 到z)以及特殊字符(称为元字符)组成的文字模式。该模式描述在查找文字主体时待匹配的一个或多个字符串。正则表达式作为一个模板,将某个字符模式与所搜索的字符串进行匹配。这里有一些可能会遇到的正则表达式示例:Visual Basic Scripting EditionVBScript匹配/^\[ \t]*$/"^\[ \原创 2013-11-15 16:38:34 · 754 阅读 · 0 评论 -
用VBA读写excel文档属性
原文地址:用VBA读写excel文档属性作者:严雪用VBA读写excel文档属性2011-01-0408:08要实现限制文件的使用次数,想来应该在某个地方存储文档已用的次数,并且在文档每被使用一次这个使用次数就得发生相应的更改。如果这个思路正确的话,我们就可以利用文档属性的某个位置来实现这一想法,故有了以下两种形式:一、利用自定义属性:因为我们可以自定义数字型的属性,这一点非常符合我们的需求转载 2013-11-15 16:38:31 · 3171 阅读 · 0 评论 -
EXCEL 公式 多列转成一行
EXCEL 公式 2列多行转成1行=OFFSET($A1,ROUNDUP(COLUMN(A1)/2,0)-1,MOD(COLUMN(B1),2))公式 多列转成一行" TITLE="EXCEL 公式 多列转成一行" />3列多行转成1行=OFFSET($A1,ROUNDUP(COLUMN(A1)/3,0)-1,MOD(COLUMN(C1),3))以此类推,4列以上的呢?大家可以自己试原创 2013-11-15 16:38:29 · 1780 阅读 · 0 评论 -
EXCEL公式 VBA 随机生成不重复值
宏代码Sub不重复的值()Dim arr(1 To100000, 1 To 1), dicSet dic =CreateObject("scripting.dictionary")Do Until i =100000 tmp = Format(Int(Rnd() * 100000) + 1,0) If Not dic.exists(tmp) Then i原创 2013-11-15 16:38:27 · 2307 阅读 · 0 评论 -
Excel 三级动态下拉菜单
之前也有一篇是介绍三级菜单的,不过当时没有GIF动态图工具只有文字,现在这个补上制作图。大家可以参考一下。欢迎交流。谢谢!三级动态下拉菜单" TITLE="Excel 三级动态下拉菜单" />原创 2013-11-15 16:37:31 · 1255 阅读 · 0 评论 -
提取字符串中数字、中文、英文字符…
提取字符串中数字、中文、英文字符的自定义函数Function MyGet(Srg As String, Optional n As Integer = False)'n为1,取汉字,n为2,取字母,n为0,取数字 Dim i AsInteger Dim s,MyString As String Dim Bol AsBoolean For i = 1原创 2013-11-15 16:37:29 · 2453 阅读 · 0 评论 -
VBA数据库中多表导出合并另存
'*****************************************************'* '*数据库格式是*.accdb(2007版)'* 数据库内各省份分别使用单独的表'*将每个表中的数据导出到新工作表并保存'*原创 2013-11-15 16:36:38 · 1244 阅读 · 0 评论 -
VBA 利用Wscript.Shell打開記事本 …
Sub打开记事本()Dim Notep As ObjectSet Notep = CreateObject("wscript.Shell")Notep.Run "notepad"Set Notep = NothingEnd Sub Sub打开计算器()Dim cal As ObjectSet cal = CreateObject("wscript.Shell")cal.Ru原创 2013-11-15 16:36:36 · 2532 阅读 · 0 评论 -
VBA檢查文件夾里是否存在指定文件…
Dim fn AsStringDim nn As Stringfn = Trim(InputBox("输入要查看文件名(包括扩展名)"))'Debug.Print fnnn = Dir(ThisWorkbook.Path & "\数据库备份\*.*")'******如果为空,则该文件夹里没有任何文件******If nn = "" Then MsgBox"该文件夹里没有任何原创 2013-11-15 16:36:33 · 1552 阅读 · 0 评论 -
EXCEL <-> SQL 导入导出的语句
Excel导入SQL从Excel文件中,导入数据到SQL数据库中,很简单,直接用下面的语句:/*===================================================================*/--如果接受数据导入的表已经存在insert into 表 select * fromOPENROWSET('MICROSOFT.JET.OLEDB.4.0转载 2013-11-26 12:33:53 · 1096 阅读 · 0 评论 -
Excel 抽取不重复项的公式
Excel 抽取不重复项的公式假设数据在A列,则用以下公式,可以抽取出A列所有的不重复项(修改999可以修改影响到的行数)=IFERROR(INDEX(A$1:A$999,SMALL(IF(IFERROR(MATCH(A$1:A$999,A$1:A$999,),0)=ROW($1:$999),ROW($1:$999),4^8),ROW(A1))),"")如下图中,E1开始输入以上公式(是数组原创 2013-11-15 16:38:50 · 4792 阅读 · 0 评论 -
EXCEL使用VBA+SQL计算重复项之和
目的:以A列为标准,取得相同编号的C,D,E,F列的值之和。(去掉重复项,合并掉后面4列的值) 其实如果用函数是可以的,比如用Sumif,但是如果数据量过多,用函数的话可能不太好。 这里用VBA,而且使用SQL语句(数据大的话会快些),当然也可以用数组。 Sub GetDd() Dim Cnn,Rs, SqlsTr$ Set Cnn =Creat原创 2013-11-15 16:38:44 · 3630 阅读 · 0 评论 -
VBA自定义菜单和菜单栏
在EXCEL中,我们的操作都是通过“工具栏、菜单栏、快捷菜”单实现。EXCEL通过菜单给我们提供基本操作功能之外,也为我们提供了扩展自定义功能的接口,即自定义自己的工具栏、菜单栏。本文着重介绍如何在 Excel2003版本中通过编程方式自定义菜单和菜单栏方法。其中包含Excel中管理和自定义菜单栏、菜单、命令、子菜单和快捷菜单,我将通过代码实例分步说明。与大家分享关于VBA实现菜单栏管原创 2013-11-15 16:38:42 · 11417 阅读 · 0 评论