Vba读取已关闭的Excel工作薄数据

2018-12-01 15:43

使用Vba读取已关闭的Excel工作薄数据到当前工作表单元格之简单范例

范例环境:

在F:\\盘根目录下,存在一工作薄,名称为“成绩表.xls”,其对应的路径是:“F:\\成绩表.xls”;

该工作薄第一个工作表名称是:Sheet1,里面存放的是学生期末考试成绩,其中,E列从E3开始,就是学生的考试成绩;

下面我们要实现的是,在关闭F:\\成绩表.xls情况下,打开Excel软件,新建一工作薄,在其工作表中的指定单元格,读取F:\\成绩表.xls中的指定的成绩数据进行填充;

①:在新建的工作表中直接按下组合键:Alt+F11,打开Microsoft Visual Basic窗口;如果打开的窗口没有出现代码窗口,那么,请在当前窗口执行操作:“视图”→“代码窗口”;

②:在代码窗口中输入如下的代码:

Private Function GetValue(path, filename, sheet, ref) ' 从关闭的工作薄返回值 Dim MyPath As String '确定文件是否存在

If Right(path, 1) <> \ If Dir(path & filename) = \ GetValue = \无法找到指定的Excel文件\ Exit Function End If '创建公式

MyPath = \Range(ref).Range(\

'执行EXCEL4宏函数

GetValue = Application._executeExcel4Macro(MyPath) End Function

'函数参数说明

'----------------------------------------------------------------- 'path:文件路径 'filename:文件名称 'sheet:工作表名称 'ref: 单元格区域

'----------------------------------------------------------------- Sub GetCloseXlsValue()

Range(\成绩表.xls\ End Sub

如下图:

上述代码的功能是:读取F:\\成绩表.xls中E8单元格的数据填充到当前EXCEL的C3单元格中;

上述代码的诠释已做说明,不再阐述!

之后直接按下F5运行代码,或点击代码运行按钮执行代码的操作,返回EXCEL窗口,即可看到填充效果;

知识扩展:

如何对关闭的工作薄数据进行求和再填充到当前工作表?

可将Range(\成绩表.xls\

改为:Range(\成绩表.xls\

GetValue(\成绩表.xls\成绩表.xls\\

这样,对E8,E9,E10三个单元格进行相加求和之后,再填充过来;

如果想填充其他单元格数据到当前工作表的其他单元格,只需要修改来处即可:

①:Range(\,修改C3

②:GetValue(\成绩表.xls\,修改盘符,文件名,工作表名,E8单元格

如果想使用更智能的办法,必须使用循环语句来控制,本例暂且不作介绍;

Excel不打开工作薄读取数据另一示例 程序设计相关 2009-04-24 08:46:41 阅读100 评论0 字号:大中小

Private Sub CommandButton1_Click() '导入其他料单统计表数据

On Error Resume Next

aa = \要从第 \行开始导入数据吗?\

aa = aa & \本操作的过程如下:\

aa = aa & \第1步 导入 用料数据;\

aa = aa & \第2步 导入 定位符数据;\

aa = aa & \第3步 导入 材料数据.\

v = MsgBox(aa, 65, \导入数据\

If v = 1 Then

filetoopen = Application.GetOpenFilename(\~2003 (*.xls), *.xls,Excel2007 (*.xlsx), *.xlsx\选择要导入数据的料单统计表\得到导入数据文件路径

If filetoopen = ActiveWorkbook.FullName Then '如果导入自身就停止导入操作

v = MsgBox(\不能导入自身数据\文件选择错误\

Exit Sub

End If

If filetoopen = False Then '如果没有选择文件就停止导入操作

v = MsgBox(\没有选择文件,终止本次数据导入操作\文件选择错误\

Exit Sub

End If

i = Len(filetoopen) '得到导入数据文件名

While Mid(filetoopen, i, 1) <> \

If Mid(filetoopen, i, 1) = \

v = MsgBox(\文件名不能包含空格\文件名错误\ '文件名包含空格就退出

Exit Sub

End If

i = i - 1

Wend

wenjianming = Right(filetoopen, Len(filetoopen) - i)

va1 = 0 '导入的用料数据行数

va2 = 0 '导入的定位符个数

va3 = 0 '导入的材料个数

n1 = 0 '空行记录

n2 = 0 '是否记录空行数

n = 2 '导入数据表的操作行数

k1 = asrd '导入数据开始放入的行数

k2 = asrd + 1

v = MsgBox(\、导入用料数据\数据导入操作开始\

If v = 7 Then GoTo rt_1

Worksheets(\用料录入\用料录入!R\n & \

While Worksheets(\用料录入\

If Worksheets(\用料录入\

For i = 1 To 6

Worksheets(\用料录入\

Next

n = n + 1

If n > 50 Then

a1 = \数据源数据有误,是否继续执行下一步导入操作?\

a1 = a1 & \是' 继续导入操作.\

a1 = a1 & \否' 终止导入操作.\

v = MsgBox(a1, 36, \数据导入中??\

GoTo rt_1

Exit Sub

End If


Vba读取已关闭的Excel工作薄数据.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:贷款中复利的计算基数

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: