- ?
工作表秒变工作簿?
田向松
展开
祝全天下的女士们
节日快乐 永远年轻!
小刘是做化妆品生意的,她有三十来个供应商,并用EXCEL记录着每个供应商供货的信息。每个供应商的供货明细,都单独记录在一个工作表中。每到月末,她都要跟供应商兑账(核实供货信息相符性)。
她的需求是:将每个工作表生成一个独立的工作簿文件,然后将该文件发给相应的供应商。
有没有快捷方法实现这一目的哪?
下面给大家分享一小段代码,可以轻松解决这个问题。
1.工作表生成工作簿文件代码:
Sub CreateWorkbooks()
Dim i As Integer
Dim ShtNm As String
For i = 1 To Sheets.Count
ShtNm = Sheets(i).Name
Sheets(i).Copy
With ActiveWorkbook
.SaveAs Filename:="c:\workbooks\" & ShtNm & ".xlsx"
.Close
End With
Next
End Sub
该代码将当前Excel文件中的每个工作表均生成一独立的Excel文件,存放在C盘workbooks文件夹下。
2.操作视频:
操作步骤如下:
1.打开EXCEL文件后,按ALT+F11打开VBA窗口
2.输入上面的代码
3.选择代码,按F5执行
——END——
- ?
python操作Excel,相比VBA你更喜欢哪个
郦慕青
展开
大家都知道在excel中用VBA代码可以解决很多批处理操作问题,因为VBA是excel原生脚本语言,所以在便利性上有着得天独厚的优势,只要你电脑有excel,那么就可以立刻使用这个VBA脚本代码来解决问题。其实除了vba还有很多脚本语言可以来操作excel,比如python脚本。
python跟vba一样都是脚本类语言,只不过python的用途更广些,而且代码好看些。由于是独立的程序,需要单独安装,这个有些麻烦,除此之外,如果你掌握好了相关的知识之后完全可以用他来任意处理excel文档。
下面说一下在windows系统上,如何使用python来连接操作excel文档。
首先要从python官网下载python主程序,安装好后,然后下载连接excel的接口模块程序pywin32,进行安装,2个步骤完成之后,就可以打开python shell界面,进行代码输入了。我这里使用的python版本是2.7,这个看自己的习惯喜好了。
python excel
小实例:在d盘的test.xls文档单元格A1中输入内容
>>> import win32com.client #加载pywin32模块
>>> xl=win32com.client.Dispatch("Excel.Application") #建立连接EXCEL程序的对象xl
>>> book=xl.Workbooks.Open("d:\\test.xls") #用xl打开d盘下的test.xls工作簿
>>> book.worksheets(1).cells(1,1).Value="输入的内容" #在工作簿的第一个表格第一个单元格输入内容
>>> book.Save() #保存工作簿
>>> book.Close() #关闭工作簿
python excel
请点击此处输入图片描述
一步一步运行完之后(当然也可以保存成脚本文件运行),用鼠标打开d盘下的test.xls文件,就可以看到刚刚输入的内容了。
python excel
请点击此处输入图片描述
- ?
如何利用VBA控制窗口在不同的工作表间切换
陌名词
展开
或许你看过不同的VBA程序的运行,对于窗口的切换一定印象深刻。在程序运行时,根据不同的需求,窗口在不同的工作表间自由的切换,可以先从一个工作表取值,放到第二个工作表中,再从其他的工作表中取出参数并参与运算,运算得出结果,放到一个单独的工作表中,看的人眼花缭乱。
这种运算是VBA所特有的。虽然在运行时会产生很多的碎片,影响时间的利用,但对于单纯的运算来讲,还是节约了时间,最主要的是提高了数据的准确性和可信度。
在羡慕别人的同时,是否也希望自己能做出这样的程序呢?当然,对于每位学习VBA的朋友来说,这是很自然的事情,学以致用,利用自己的所学。从VBA入手点滴的积累,总会有所收获,正如你经常来我这个平台,福不唐捐,总会能碰到你急于掌握的知识一样。前些时有位朋友留言,说是帮了他大忙,但我确实不知道这位朋友的大忙是什么,也并非给这位朋友定制的,总是机缘吧。
闲话少叙,其实这个实现起来很简单的,今天就给大家讲解一下利用VBA如何控制窗口的切换。
我们先看下面的代码:
11 Dim AppPATH
12 AppPATH = ActiveWorkbook.Path
13 ChDir AppPATH
14 Workbooks.Open FileName:=AppPATH & "\XX.XLS" '打开文件
15 Sheets("SHEET1").Select
16
17 Do While .Cells(I, 1).Value <>""
18-90 '提取数据’
91 I = I + 1
92 Loop
93
94 ActiveWindow.Close (False) '关闭文件
95
96 Windows("LUMAN").Activate
97
98 Sheets("SHEET1").Select
99-199 '执行操作
200
201 Sheets("SHEET2").Select
201-230 '执行操作
231
232 MsgBox ("ok!")
233
程序讲解,上面的代码是一个名为LUMAN.xls的EXCEL的VBA部分代码,当执行到第11行时,程序会识别一下路径,进而打开一个在同文件夹下名字为XX的文件。
15-93行程序会在此文件中进行操作,此时窗口的文件就是这个XX的文件,当执行到第94行时,文件XX会自动的关闭
执行到第95行时,活动窗口又回到了LUMAN的文件,先在SHEET1中进行操作,然后到SHEET2中进行操作。
所有操作执行完成后弹出对话框”OK”。
上面的代码在运行的过程中用到了两个文件,并在期间切换运行,窗口的可视性非常的好,这点比其他程序要友好,如VB6的控件,GO对EXCEL的操作。这也是强大的EXCEL的功能造就的。
当然,对于初识VBA的朋友,上面的讲解不是很解渴,不过没关系的,上面的文章中引入了很多的知识点,如:如何获得当前的地址,如何打开一个文件,如何关闭一个文件,如何把窗口切换到另外的文件等等,只要你掌握了其中之一,就有收获,而且是不小的收获。
今日内容回向:
1 VBA如何获得当前的地址,
2 VBA如何打开一个文件,
3 VBA如何关闭一个文件,
4 VBA如何把窗口切换到另外的文件
5 如何提高程序的可视性
6 如果不关闭上一个窗口,是否会影响到下面的操作?
分享成果,随喜正能量
- ?
如何保存含宏指令(VBA代码)的Excel工作簿
Elita
展开
宏指的是一段操作指令,它也属于VBA的一种。通常情况下,在使用Excel处理数据时,如果碰到需要进行较多的重复性操作,可以通过录制宏命令来,将这些操作指令记录下来,然后让Excel傻瓜式的运行这些指令,即可实现化繁为简,在提高工作效率的同时还能保证质量的稳定,这就是为啥有些人在处理重复性操作时,是那么的得心应手,而有的人却是那么举步维艰,叫苦连天。除此之外,Excel还赋予了使用者极大的操作灵活性,使用者可以自己编辑VBA代码,实现一些Excel本身常规操作无法实现的功能,如拼图游戏等。当需要的代码指令已经录制好或编辑好之后,又该如何将它们保存下来以便下次操作使用呢?本教程将介绍几种方法帮你轻松搞定这一点。
用最小的代价得到最好的东西1、对于一些仅含简单录制宏指令的Excel电子表格,可以直接单击Excel快速访问工具栏中的保存命令(保存命令快捷键为Ctrl+S)进行保存,此时的Excel工作簿的后缀名为xlsx。
保存含宏指令技巧2、可以将含有宏指令的工作表另存为启用宏的Excel工作簿,具体操作是单击Excel界面菜单栏中的文件命令,然后找到另存为下的启用宏的Excel工作簿命令,单击该命令,设置保存路径即可实现宏指令的保存,此时文件的后缀名为xlsm。此方法保存的文件适用于不低于保存版本的Excel软件。
复杂事情轻松应对3、考虑到Excel向下兼容的特性,如果想让宏代码文件通用于Excel各个版本,建议将含宏指令的工作簿保存成低版本,即Excel97-2003工作簿。具体操作是,单击另存为下的Excel 97-2003命令,然后选择保存路径即可,该方法保存的文件后缀名为xls。
保存宏指令文件的后缀名差异 - ?
excel如何启用编辑
李翰
展开
excel启用宏编辑,可按以下方法操作:
1、当打开一个带有宏代码的Excel表格时,在表格顶部会出现提示“宏已被禁用”。如果对文件内容了解,可以单击旁边显示的按钮【启用内容】可以快速启用表格中的宏代码。启用后,上面的黄色警告提示会消失。
2、如果不想立即启用,可以单击文字“宏已被禁用”,进入启用宏的更多设置,如下图。
3、在启用宏设置中,有两项选择【启用所有宏】和【高级选项】。在高级选项中也可以选择默认推荐或者全部启用。因为宏涉及到访问的安全,所以要根据自己情况选择设置。
4、对宏进行设置还可以点击Excel表格上方菜单【文件】下的【选项】,在选项窗口中,点击左侧的【信任中心】命令,然后在右侧显示内容中单击【信任中心设置】按钮。
5、在弹出的窗口左侧点击【宏设置】命令选项,右侧可以进行四种设置类型,从安全方面考虑,建议尽量不选用最后的全部启用项。
6、通过上面步骤的设置,可以在Excel工作表中启用宏代码来提高工作效率。但是如果想对宏进行编辑和修改,应该怎么打开宏 的编辑界面呢?
在Excel中,如果想切换调用工作表中不同的宏,可以按组合键Alt+F8,如图。可以在弹出的窗口列表中选择切换宏,然后选择运行或单步执行。
7、如果想编辑宏代码,可以按快捷键Alt+F11瞬间打开VBA编辑窗口,再次执行快捷键回到Excel工作表窗口,大大的提高了工作效率。
(本文内容由百度知道网友贡献)
- ?
Win10系统下启用Excel2016宏命令的方法
克劳迪娅
展开
因为Win10系统安全性比较高,原来在XP轻松运行的Excel宏都被禁用,显示结果都是未注册,没有权限无法加载之类的警告。
这个问题影响了很多程序软件功能的调用,连CATIA都无法启用自带的Excel宏。小编研究了半天才弄通了关键。首先打开系统盘以下目录,C:\Program Files (x86)\Common Files\Microsoft Shared\VBA
打开VBA6文件夹,将里面的文件VBE6EXT.OLB复制到C:\Program Files\Common Files\microsoft shared下的VBA7.1文件夹里面。
有些同学不知道这个简便方法,还要到网上专门下载VBE6EXT.OLB文件。其实Program Files (x86)本身就有的。直接复制过去即可。另外Excel2016一定要以管理员身份运行。
一般接下来还要设置下宏安全性:
在弹出的窗口中依次点击“信任中心”-“信任中心设置”-“宏设置”-“启用所有宏”即可。
- ?
关于Excel VBA编程的小技巧
史海露
展开
1、 根据条件删除行
Sub deleteRows(strTable, condition1, condition2)
Dim i, j, iMax, jMax As Long
Dim iicondition1, iicondition2 As Integer
With Worksheets(strTable)
iMax = .UsedRange.Rows.Count
jMax = .UsedRange.Columns.Count
i = 2
Do While i < iMax + 1
iicondition1= .Cells(i, 1)
iicondition2 = .Cells(i, 2)
If (iicondition1= condition1And iicondition2 = condition2) Then
.Rows(i & ":" & i).Delete shift:=xlUp
iMax = iMax - 1
Else
i = i + 1
End If
Loop
End With
End Sub
2、 删除所以的使用range
Worksheets("sheetName").UsedRange.Delete shift:=xlUp
3、打开某指定路径的文件夹对话框
Function GetFileName(ByVal DialogType As MsoFileDialogType, ByVal defaultPath As String) As String
With Application.FileDialog(DialogType)
.Title = "XXXX:"
.AllowMultiSelect = False
.Filters.Clear
.Filters.Add "Excel Files", "*.xlsm"
.Filters.Add "All Files", "*.*"
.InitialFileName = defaultPath
If .Show = True Then
GetFolderName = .SelectedItems(1)
End If
End With
End Function
4、截取字符段
从右边开始,查找某字符,然后截取其后面的字符串。
xlsPath2 = Right(xlsPath, InStr(StrReverse(xlsPath), "\") - 1)
5、Sharepoint数据的刷新
Worksheets("Sharepoint对应的sheet").Range("A1").ListObject.QueryTable.Refresh BackgroundQuery:=False
6、当前使用的range的取得
.UsedRange ‘对应的range
.UsedRange.Rows.Count ‘对应的行号
.UsedRange.Columns.Count 对应的列号
7、在Excel内部打开另外一个Excel (不显示,隐藏)并读取其数据
Set xlsApp = New Excel.Application
xlsApp.Visible = False
xlsPath = ThisWorkbook.Path
Set xlsWB = xlsApp.Workbooks.Open(xlsPath, Null, ReadOnly)
‘读取/写入对应的sheet
X = xlsWB.worksheets(“xxxx”).cells(i,j)
xlsWB.worksheets(“xxxx”)..Cells(i, j).Formula = "=E” & i
8、计算处理
'如果你的表中有大量的计算单元格,那就需要关闭自动计算,否则慢的要死
‘在VBA开始,设置为手动
'Application.Calculation = xlCalculationManual
'Application.ScreenUpdating = False
‘在VBA开始,设置为自动
'Application.Calculation = xlCalculationAutomatic
'Application.ScreenUpdating = False
注意,还有一种方法是再打开本excel的时候,就设置为手动,对于需要计算的sheet,单独在其数据填充完毕后,执行计算操作。
例如: Worksheets("XXXXX”).Calculate ‘这是效率最高一种方法。当然,你也可以对某些range,单独进行range计算。
9、Range到range的只读拷贝、黏贴
Worksheets("srcSheet").Range(.Cells(1, 1), .Cells(x,y)).Copy
Worksheets("dstSheet").Cells(1, 1).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
10、Cell内容的替换操作
Worksheets("CostTable").Cells.Replace What:="Original Content", Replacement:="replease Content", LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
11、自动填充
Worksheets("xxxx")..Range("D8:F8").AutoFill Destination:=.Range(.Cells(8, 4), .Cells(rMax, 8)), Type:=xlFillDefault
12、获取pivot的使用区域、
Set pvt = Worksheets("xxxx").PivotTables("PivotTable_xxxx")
Set rngTable = pvt.TableRange1
13、刷新pivot
Worksheets("xxxx").PivotTables("PivotTable_xxxx").PivotCache.Refresh
- ?
Excel 打开时提示需要VBA的宏语言支持时怎么回事
Shela
展开
因为文档中有宏,开启宏就可以了,操作方法如下:
1.打开office excel 2013,鼠标单击“文件”。
2.鼠标单击“选项”。
3.鼠标单击“信息中心”。
4.单击“信息中心设置”。
5.选择”宏设置“------启用所有宏”。
6.鼠标单击“确定”。宏启用完成。
(本文内容由百度知道网友茗童贡献)
- ?
Excel-VBA 悄悄地拿数据——不打开Excel文档的情况下获取文档内数据
韩忆丹
展开
前言
首先需要感谢看官您抽空观赏本文,若有任何问题,欢迎您的指正。
另外大家若有什么好的想法或者效果需求,可以在评论区留言或者私信我,我会尽力尝试做一做。
如果您喜欢本文的话,可以点赞、订阅、关注、收藏、留言评论哦!谢谢!O(∩_∩)O~~
情景还原 - 请您听我说
Excel - VBA 让表格处理变得更简单、更便利、更有趣。
平常我们从其他Excel表格Copy数据出来的时候,往往都会将源数据表格打开,然后提取我们所需要的部分数据;
将这个流程整理出来就是:①打开文件资源管理器,花若干秒找到文件;②花若干秒打开文件;③选中全文并Copy(若不熟练Excel快捷键等,可能Copy过程要多耽误几秒);④回到需要数据的文档粘贴下来(若开的文件较多,可能切换时也要耽误几秒)。
那这上面的看似复杂的流程,可否有便利快捷的办法完成呢?
答案肯定是 —— 有。用VBA代码就能将上面的流程简化到只要【找文件】这一步。
功能介绍 - “吹”来“吹”去
流程简洁方便,只需要找到那份文档即可;
若源数据文档只有一个工作表,则直接汇入数据;
若待汇入源数据文档含有多个工作表,会提示选择需要汇入的表格;
若输入非关键值,则会报错并重新提示输入值。
效果演示 - 调皮的 GIF 环节
依旧是那句:万般文字也不如一个视频或者一张GIF演示来的痛快,请看官您静静观赏。
首先是一份正常使用情况下的完成流程:
调皮的 GIF 图有点点长 ~.~
当输入关键字时,输入非列表内的对应序号,则会报错提示,并重新回到输入关键字的界面:
确认选择的文件
输入 “WW” 不符合要求
报错提示信息
输错啦!请重新输入.GIF
VBA代码 - Tab / Space
效果演示看完了,那么就为您附上代码,供您慢慢检验:
VBA 代码
PS:若有看官觉得图片还不够清晰,无法尝试,您可以在评论区留言,我会私信回复您。若需要代码的看官比较多(比如100位),那么我会将文本代码直接以文章推送出来供大家查阅。
【关于私信,目前可能需要看官您先发送私信给我,作为作者这边无法直接向您发信息,若您曾给我发过私信且未将对话关闭,我这边就能从历史记录中向您发送信息。】
文末 - 谢谢您嘞,(づ ̄3 ̄)づ╭
每一位读者的点赞、订阅、关注、收藏、留言评论都是对我的最大支持,谢谢各位帅哥美女!
同时也希望大家多多转发与评论留言,毕竟只有更多的人认可,我才更有动力为大家发布文章,提供代码。
再次谢谢大家!
友情链接 - 值得一看
1、Excel-VBA 让录入数据变得更智能——输入时提示匹配值
2、Excel-VBA 将乱序的数据剔除空值后有序排列成一列或一行
3、Excel-VBA 实时记录表格异动
4、Excel-VBA “十字星”聚焦效果
- ?
Excel如何用VBA自动合并同目录下的多个excel工作簿文件
你定
展开
在excel的使用过程中,有时候我们需要将同目录下有着相同标题的多个excel工作簿合并到一个excel工作簿中,比如下面这种情况,5个年级的学生名单合并到一个表里面去。
常用的做法是手工打开每个文件,复制粘贴到学生名单汇总一个表里去。
这里介绍一个偷懒的方法,用VBA代码自动合并。代码分4段,第1段是主代码,后面3段是自定义函数。建议把代码复制粘贴到个人工作簿的模块里,方便调用。打开学生名单汇总.xlsx ALT+F8运行该代码。
以下是具体代码,复制粘贴
Sub 同目录下合并多个excel工作簿()
'On Error Resume Next '// 发生错误,自动执行下一句,就是忽略错误
Application.ScreenUpdating = False '//关闭屏幕刷新
Application.DisplayAlerts = False '//关闭系统提示
t = Timer '//开始时间
Set SH0 = ActiveWorkbook.Worksheets(1)
SH0.Cells.Clear '//清空保存区域,全部数据第一行是标题行,且只占一行,无合并单元格
ARR = FileAllArr(ActiveWorkbook.Path, "*.xlsx", ActiveWorkbook.Name, False) '//详见函数说明
SHName = "sheet1" '//要求所有工作簿内需要统计的工作表名称相同,
For i = 0 To UBound(ARR)
Str_coon = "Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties='Excel 12.0;HDR=yes';data source=" & ARR(i) '//Excel2007
' Str_coon = "Provider=Microsoft.JET.OLEDB.4.0;Extended Properties='Excel 8.0;HDR=yes';data source=" & & ARR(I) '//OFFICE2003,根据情况选择
StrSQL = "SELECT *,'" & GetPathFromFileName(ARR(i), False) & "' AS 来自工作簿 FROM [" & SHName & "$]" '//SQL语句自己发挥吧,这里是精髓。
IROW = SH0.Range("A1048576").End(3).Row + 1
If IROW <= 2 Then
IROW = 1
Crr = GET_SQLCoon(StrSQL, Str_coon, True) '//第一次,带上标题
Else
Crr = GET_SQLCoon(StrSQL, Str_coon, False)
End If
SH0.Range("A" & IROW).Resize(UBound(Crr, 1) + 1, UBound(Crr, 2) + 1) = Crr '//粘贴查询结果
Next
Application.ScreenUpdating = True '//恢复屏幕刷新
Application.DisplayAlerts = True '//恢复系统提示
MsgBox "汇总用时:" & Format(Timer - t, "#0.0000") & " 秒", , "北极狐提示!!" '//提示所用时间
End Sub
Rem 下面是为方便整理的自定义函数,上面的代码执行必不可少哟!!
'*******************************************************************************************************
'功能: 查找指定文件夹含子文件夹内所有文件名或文件夹名(含路径)
'函数名: FileAllArr
'参数1: Filename 需查找的文件夹名 不含最后的"\"
'参数2: FileFilter 需要过滤的文件名,可省略,默认为:[*.*]
'参数3: Liwai 剔除例外的文件名,可省略,默认为:空,一般为:ThisWorkbook.Name
'参数4: Files 是否只要文件夹名,可省略,默认为:FALSE
'返回值: 一个字符型的数组
'使用方法:arr = FileAllArr(ThisWorkbook.Path, "*.xls", ThisWorkbook.Name,false)
'*******************************************************************************************************
Public Function FileAllArr(ByVal Filename As String, Optional ByVal FileFilter As String = "*.*", Optional ByVal Liwai As String = "", Optional ByVal Files As Boolean = False) As String()
Set Dic = CreateObject("Scripting.Dictionary") '创建一个字典对象
Set Did = CreateObject("Scripting.Dictionary")
Dic.Add (Filename & "\"), ""
i = 0
Do While i < Dic.Count
Ke = Dic.keys '开始遍历字典
MyName = Dir(Ke(i), vbDirectory) '查找目录
Do While MyName <>""
If MyName <> "." And MyName <> ".." Then
If (GetAttr(Ke(i) & MyName) And vbDirectory) = vbDirectory Then '如果是次级目录
Dic.Add (Ke(i) & MyName & "\"), "" '就往字典中添加这个次级目录名作为一个条目
End If
End If
MyName = Dir '继续遍历寻找
Loop
i = i + 1
Loop
Dim arrx() As String
i = 0
If Files = True Then '//是否只输出文件夹名
For Each Ke In Dic.keys '以查找总表所在文件夹下所有excel文件为例
ReDim Preserve arrx(i)
If Ke <> Filename & "\" Then '//自身文件夹除外
arrx(i) = Ke
i = i + 1
End If
Next
FileAllArr = arrx
Else
For Each Ke In Dic.keys '以查找总表所在文件夹下所有excel文件为例
MyFileName = Dir(Ke & FileFilter) '过滤器:EXCEL2003为:*.xls,excel2007为:*.xlsx
Do While MyFileName <>""
If MyFileName <> Liwai Then '排除例外文件
ReDim Preserve arrx(i)
arrx(i) = Ke & MyFileName
i = i + 1
End If
MyFileName = Dir
Loop
Next
FileAllArr = arrx
End If
End Function
'****************************************************************
'*'****************************************************************************************************
'函数: GetPathFromFileName 根据全路径获得文件名
'参数1:strFullPath 完整路径
'参数2:kzm true 返回字符串含扩展名
'参数3:strSplitor 各级文件夹分隔符
'作用: 从完整路径获取返回: 文件名(true带扩展名)
'使用方法: msgbox GetPathFromFileName("C:\windows\text.txt",true)
'*'****************************************************************************************************
Public Function GetPathFromFileName(ByVal strFullPath As String, Optional ByVal kzm As Boolean = True, Optional ByVal strSplitor As String = "\") As String
Dim FileName1 As String
Dim FNAME As String
FileName1 = Left$(strFullPath, InStrRev(strFullPath, strSplitor, , vbTextCompare))
FileName1 = Replace(strFullPath, FileName1, "")
If kzm = False Then
GetPathFromFileName = Left(FileName1, InStr(FileName1, ".") - 1)
Else
GetPathFromFileName = FileName1
End If
End Function
'*'****************************************************************************************************
'*****************************************************************************************
'函数名: GET_SQLCoon
'函数功能: 获得指定SQL的查询结果,自定义连接字符串,可以连接各种数据库
'返回值: 返回一个二维数组
'参数1: StrSQL 字符类型 SQL查询语句
'参数2: Str_coon 字符类型 数据库连接语句
'参数3: Biaoti 可参数选 是否输出标题,默认带有标题
'使用方法: Arr = GET_SQLCoon(StrSQL,Str_coon,true)
' Arr(0,1) '//数组第一行为标题行,从i=1 开始是数据
' Sh2.Range("A2").Resize(UBound(ARR, 1) + 1, UBound(ARR, 2) + 1) = ARR
'*****************************************************************************************
Public Function GET_SQLCoon(ByVal StrSQL As String, ByVal Str_coon As String, Optional Biaoti As Boolean = True) As Variant()
On Error Resume Next ' 改变错误处理的方式。
Dim Cn, RS
Err.Clear
Set Cn = CreateObject("Adodb.Connection") '//新建一个ADO连接
Set RS = CreateObject("adodb.recordset")
Cn.Open Str_coon
RS.Open StrSQL, Cn, 1, 3
If RS.RecordCount > 0 Then '//如果找到数据
If Biaoti = True Then
ReDim ARR(0 To RS.RecordCount, 0 To RS.Fields.Count - 1)
For a = 0 To RS.Fields.Count - 1 '//导入标题
ARR(0, a) = RS.Fields(a).Name
Next
For i = 0 To RS.RecordCount - 1 '//导入数据
For a = 0 To RS.Fields.Count - 1
ARR(i + 1, a) = RS.Fields(a).Value
Next a
RS.MoveNext
Next
Else
ReDim ARR(0 To RS.RecordCount - 1, 0 To RS.Fields.Count - 1)
For i = 0 To RS.RecordCount - 1 '//导入数据
For a = 0 To RS.Fields.Count - 1
ARR(i, a) = RS.Fields(a).Value
Next a
RS.MoveNext
Next
End If
Else '//如果没有找到数据
ReDim ARR(1, 1)
ARR(0, 0) = ""
End If
GET_SQLCoon = ARR
Cn.Close '//关闭ADO连接
Set RS = Nothing
Set Cn = Nothing '//释放内存
End Function
'*****************************************************************************************
vba打开excel文件
-
1、只需3秒快速实现求和
-
2、如何快速填充序号
-
3、如何自动填充序号(公式法)
-
4、数据条的神奇应用
-
5、多文本快速合并
-
6、查找与替换的不同玩法
-
7、快速定位到指定区域
-
8、数据排序、工资条制作
-
9、快速筛选(模糊、精确筛选)
-
10、快速插入空行
-
11、快速删除空行
-
12.快速跳转到天涯海角
-
13、.同时查看两个Excel文件
-
14、用条件格式扮靓报表
-
15、一键插入Excel图表
-
16、批量处理行高、列宽
-
17、利用拆分功能查看数据
-
18、批量录入相同内容
-
19、工作表快速跳转
-
20、批量录入表格模板(精品课程)
-
21、Excel函数与公式的应用、公式循环引用的查找
-
22、IF函数单条件判断同比增长
-
23、用sum函数 格式相同,连续多表数据汇总
-
24、excel快捷键
-
25、VLOOKUP函数——根据销售员匹配销售额
-
26、统计各部门销售总额
-
27、统计指定条件个数
-
28、怎样输入当前日期和时间、星期数
-
29、销售业绩排名
-
30、Sumproduct函数-万能函数(销售额汇总求和)
-
31、根据销售员,地区,商品名称汇总
-
32、批量替换PPT字体
-
33、给销售额数据批量添加万元单位
-
34、一秒快速核对两列数据
-
35、快速定位到指定单元格或区域
-
36、快速制作双行标题工资条
-
37、给你的表格做个瘦身
-
38、快速打开常用的Excel文件
-
39、快速打开多个Excel文件
-
40、利用创建组—快速隐藏/展开多列数据
-
41、快速制作下拉菜单
-
42、复制粘贴表格,如何保留数据源列宽格式一致?
-
43、两列数据位置互换
-
44、1秒钟扮靓报表——如何实现表格隔行换色
-
45、快速删除重复记录——保留唯一值
-
46、快速向下填充、向右填充,文本或公式
-
47、给Excel文件添加密码
-
48、插入带图片的批注
-
49、输入公式后不计算?
-
50、如何设置单元格缩进
-
51、快速解决Excel表格总显示货币格式
-
52、批量添加万元单位
-
53、你会四舍五入么?
-
54、用RAND函数机选彩票
-
55、冻结首行你会么?
-
56、超链接的高级应用
-
57、IFERROR函数-屏蔽错误值
-
58、批量填充颜色
-
59、录入数据
-
60、快速输入工号
-
61、快速行列转置
-
62、自定义缩放界面
-
63、多个单元格同时输入
-
64、如何计算立方米?
-
65、快速制作双行标题工资条
-
66、输入带方框的√和×
-
67、快速将姓名对齐
-
68、快速输入性别
-
69、按单位职务排序
-
70、自动计算合同到期日期
-
71、计算时间间隔
-
72、日期和时间的拆分
-
73、快速处理不规范的日期格式
-
74、快速填充合并单元格
-
75、效率加倍的快捷键
-
76、快速复制表格和对象
-
77、快速创建工作表副本
-
78、快速复制序列号
-
79、快速显示公式
-
80、多个单元格同时输入
-
81、快速调整显示比例
-
82、快速自动填充
-
83、快速填充(Ctrl+E)
-
84、Ctrl与数字键结合
-
85、快速将多列数据整理为1列
-
86、快速将1列数据拆分为多列
-
87、快速定位公式
-
88、快速录入数据
-
89、快速累计求和
-
90、身份证号码显示为0怎么办?
-
91、快速制作斜线表头
-
92、文本竖向显示
-
93、神奇的监视窗口
-
94、不一样的格式刷
-
95、快速美化图表
-
96、快速生成当前日期
-
97、快速找出循环引用
-
98、快速提取信息
-
99、二维表快速转换为一维表
-
100、快速多表合并