Excel VBA连接ACCESS数据库

Excel VBA连接ACCESS数据库,第1张

 stpath = ThisWorkbookPath & ApplicationPathSeparator & "attendanceaccdb"

    CNOpen "Provider=MicrosoftACEOLEDB120;Data Source =" & stpath & ";Jet OLEDB:Database Password=cjw123456"

供参考。

本次案例来自网友提问:需要从600个Excel文件中导出每个文件中的2个,之前由于时间原因,回复比较简单没有给出具体实现方法,今天花时间整理写成图文,希望小伙伴们都可以学会。

一、 数据模拟

为了更加真实的还原提问者遇到的问题,我们需要准备600个且都包含有2个的Excel文件。一两个文件我们可以手动新建就可以了,这可是600个文件呐!

别担心,既然我们是用VBA来解决问题,解决这种事情重复机械的劳动,当然不是什么难事。我们用以下两个代替,放到当前文件目录下,分别命名为test1png和test2png,模拟数据时将test1png插入到第一个表,test2png插入到第二个工作表。

test1png

test2png

分步 *** 作过程:

第一步:新建一个Excel文件,将它另存为xlsm格式。

启用宏工作簿

第二步:打开新建好的xlsm文件,按快捷键ALT+F11进入VBE界面。

进入VBE界面

第三步:在VBE工程种插入一个模块。

插入模块

第四步:在刚刚新建的模块中粘贴以下代码。

Sub 生成600个含的Excel文件()

'关闭刷新,防止屏幕抖动

ApplicationScreenUpdating = False

'定义变量i

Dim i As Integer

'定义i从1循环到600

For i = 1 To 600

'新增一个工作簿

WorkbooksAdd

'往工作簿的第一个工作表中插入test1png

ActiveWorkbookSheets(1)PicturesInsert(ThisWorkbookPath & "\test1png")Select

'往工作簿的第二个工作表中插入test2png

ActiveWorkbookSheets(2)PicturesInsert(ThisWorkbookPath & "\test2png")Select

'将工作簿存储到当前路径下

ActiveWorkbookSaveAs ThisWorkbookPath & "\" & i & "xlsx"

'关闭工作簿

ActiveWorkbookClose

'继续循环新建其他工作簿

Next

'恢复屏幕刷新

ApplicationScreenUpdating = True

'处理完成给出提示

MsgBox "600个含的Excel文件生成完成!", vbInformation, "提示信息"

End Sub

第五步:执行VBA代码,生成我们需要的600个Excel文件。

执行VBA代码

连贯 *** 作演示:

*** 作演示

二、 导出

600个案例文件已经准备好了,接下来就是导出文件中的。

解决思路:

1 一个个的找出当前目录下的所有Excel文件。

2 打开找到的Excel文件。

3 一个个的找出Excel文件中的工作表。

4 找出工作表中的所有对象

5 把找到的每一个导出到当前目录下。

如果文件不多的情况下,按上面的思路手动 *** 作导出也是可以的,其实通过VBA来解决问题也是要先把复杂问题进行简单化,一步步进行分解问题,最终形成完整解决方案。VBA代码使用方式在上面数据准备过程中已经有详细描述了,本次我们直接来运行下代码,实现导出文件中的。

Sub 导出当前路径下工作簿中的()

Dim wk$ '定义为工作簿文件

Dim i As Integer '定义工作簿中的工作表数量

Dim ii As Integer '定义为工作表中的对象个数

'关闭刷新,防止抖动

ApplicationScreenUpdating = False

'遍历第一个工作簿文件

wk = Dir(ThisWorkbookPath & "\xlsx")

'遍历到的文件名不等于空的情况下

Do While wk <> ""

'如果文件名称和当前的名称是不一样的。

If wk <> ThisWorkbookName Then

'打开遍历到的工作簿

WorkbooksOpen (ThisWorkbookPath & "\" & wk)

'对打开的工作簿文件进行以下 *** 作

With ActiveWorkbook

'循环出工作簿中的每一个工作表

For i = 1 To SheetsCount

'循环出工作表中的每一个对象shape

For ii = 1 To Sheets(i)ShapesCount

'临时变量,统计shape的个数

k = k + 1

'复制shape对象

Sheets(i)Shapes(ii)Copy

'创建一个图表对象,宽高与与对象保持一致

With Sheets(i)ChartObjectsAdd(0, 0, Sheets(i)Shapes(ii)Width, Sheets(i)Shapes(ii)Height)Chart

'把插入进去

Paste

'通过图表对象的导出方法,把导出到当前目录下

Export ThisWorkbookPath & "\" & wk & "_" & k & "png"

'删除图表

ParentDelete

End With

Next

Next

'关闭打开的工作簿

Close False

End With

End If

'继续遍历下一个工作簿

wk = Dir

Loop

'开启屏幕刷新

ApplicationScreenUpdating = True

End Sub

导出演示

以上就是关于Excel VBA连接ACCESS数据库全部的内容,包括:Excel VBA连接ACCESS数据库、如何使用VBA调用EXCEL里面的图片和数据生成PPT里面的图片和数据、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/10198134.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存