请问以下VBA 为什么只能抓取文件夹里面仅两个工作簿的数据? vba跨工作簿提取数据
excel里面我想 用VBA实现调用另一个工作簿中的数据怎么解决
1、点击Excel界面左下角的录制宏按钮录制宏。
2、在【宏名】处输入一个有意义的名称,帮助以后识别该宏的功能。本例按照默认名称命名。选择将宏录制在【个人宏工作簿】并点击【确定】按钮。
3、马上点击Excel界面左下角的停止录制宏按钮停止宏的录制。
4、按Alt+F11打开VBE界面,如下图。
5、在代码部分输入或者粘贴执行某项特定功能的代码。
6、在功能区(Ribbon)上鼠标右键,选择【自定义快速访问工具栏】。
7、向窗体中拖动一个“标签”和一个“按钮”,右击“按钮”,从其扩展菜单中选择“属性”项。
8、双击“获取Excel数据”按钮,在打开的代码编辑窗口中,输入以下代码。
9、双击“Sheet1”工作表,在弹出的代码编辑窗口中输入如下代码。
10、返回Excel表格,激活Sheet1工作表,就可以看到窗口弹出,同时点击“获取Excel数据”按钮,就可以读取Excel中的数据啦。
excel vba 跨工作簿的数据提取
做了两个模拟的表,具体如下。
表1
表2
然后在表1中使用vlookup函数抽取表2的编号,公式=VLOOKUP(B2,Sheet2!A:B,2,0),下拉。
#N/A项为表2中没有的项目,无法抽取。
Excel vba 从另外一个工作簿提取数据 最快的方法
试试这段代码,对应修改:
Sub Macro1()
Dim cnn As Object, SQL$, sh As Worksheet
Set cnn = CreateObject("ADODB.Connection")
cnn.Open "Provider = Microsoft.Jet.Oledb.4.0;Extended Properties ='Excel 8.0;hdr=no';Data Source =" & ThisWorkbook.Path & "\文档2.xls"
For Each sh In Sheets
SQL = "Select f2,f5,f6 from [" & sh.Name & "$a2:f]"
sh.Range("A2:C65536").ClearContents
sh.[a2].CopyFromRecordset cnn.Execute(SQL)
Next
cnn.Close
Set cnn = Nothing
End Sub
EXCEL VBA 获得其它工作薄的数据
h = Range("f65536").End(xlUp).Row + 1
把Sheet1.删除了,这个会特指kkk文件中的Sheet1(在VBA窗口的左上窗口里,没个Sheet都有一个“(Name)",不是”Name",后者是工作表的名字(在Excel里的显示名字),前者是VBA中的名字。