使用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
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库Vba读取已关闭的Excel工作薄数据在线全文阅读。
相关推荐: