乔山办公网我们一直在努力
您的位置:乔山办公网 > excel表格制作 > <em>VBA</em>如何在不打开工作簿的情况下引用工作簿中的单元格(关键在...-vba 不

<em>VBA</em>如何在不打开工作簿的情况下引用工作簿中的单元格(关键在...-vba 不

作者:乔山办公网日期:

返回目录:excel表格制作


不打开文件的情况似乎只有数据库访问方式才可以,把要访问的excel文件作为一个数据库。这样的话你要动态链接数据库,很麻烦
一般人都用欺骗的方式吧,就是不刷屏,并把打开的excel隐藏,读取后再关闭,和没有打开看起来是一样的

Public excelapp As New Excel.Application
Dim fd As FileDialog
Dim Filepath As String
dim arr(1 to 100) as integer
filepath=你引copy的那个文件的全部路径名称+文件名称
Set Workbook = excelapp.Workbooks.Open(Filename:=filepath)
With excelapp.Application
'--------------------------------你要引用什么就写下面,比如 我把目标文件中sheet1的A1-A100的值赋值给Arr数组
For x = 1 To 100
arr(x)=.sheets(1).cells(x,1).value
Next x
End With
excelapp.Application.DisplayAlerts = False
excelapp.Application.Quit

打开一个新的excel 文件,按 alt+ f11
vba窗口点 插入--- 模块

把下边代码粘贴到 右边
Sub 建9月1到30日表()
Dim i
For i = 1 To 30
Worksheets.Add(After:=Worksheets(Worksheets.Count)).Name = "9月" & i & "日"
Next i
End Sub

然后按 F5 选
建9月1到30日表()
运行

不打开是不行的,至少得用zd代码打开。
sub test()
dim mary(1 to 1024,1 to 1),k as long,myFile as string
dim wb as workbook,sh as workSheet
myFile="D:\我的Excel文件.xls" '注:你文件的类型,可能是.xlsm或.xlsx格式,自行相应改动本行
k=0
set wb=workbooks.open(myfile)
for each sh in wb.worksheets
k=k+1
mary(k,1)=sh.name
next
wb.close 0
with activesheet
.[a1].resize(k,1)=mary
end with
end sub

相关阅读

关键词不能为空
极力推荐

ppt怎么做_excel表格制作_office365_word文档_365办公网