1、点击Excel界面左下角的录制宏按钮录制宏。
2、在【宏名】处输入一个有意义的名称,帮助以后识别该宏的功能。本例按照默认名称命名。选择将宏录制在【个人宏工作簿】并点击【确定】按钮。
3、马上点击Excel界面左下角的停止录制宏按钮停止宏的录制。
4、按Alt+F11打开VBE界面,如下图。
5、在代码部分输入或者粘贴执行某项特定功能的代码。
6、在功能区(Ribbon)上鼠标右键,选择【自定义快速访问工具栏】。
7、向窗体中拖动一个“标签”和一个“按钮”,右击“按钮”,从其扩展菜单中选择“属性”项。
8、双击“获取Excel数据”按钮,在打开的代码编辑窗口中,输入以下代码。
9、双击“Sheet1”工作表,在弹出的代码编辑窗口中输入如下代码。
10、返回Excel表格,激活Sheet1工作表,就可以看到窗口弹出,同时点击“获取Excel数据”按钮,就可以读取Excel中的数据啦。
此题是vba代码运用的问题。这里不想给出代码,而是给出方法,授人以渔。
excel的vba确实能给人方便,提高效率。但它的内置规则、控件引用确实挺考人记忆力。我们不是百科全书,如何不记忆代码规则实现编程?
答案是用excel的宏。你可以测试一下,在工作簿1中录制宏,在a1乱打字,然后点击另外一个工作簿,在b1乱打字,结束录制。
当打开这个宏的时候,是不是多了一段。
Windows("×××.xls").Activate
Range("A1").Select
……
这个是不是满足你需要解决的问题。
Dim wb As Workbook
Application.ScreenUpdating = False
Set wb = Workbooks.Open(要调用的工作薄的路径及名称)
‘路径及名称格式如下 ThisWorkbook.Path & "\Back.xlsx")
With wb.Sheets("表名 不是工作薄名").range(要调用的单元格)
对调用单无格的操作
End With
wb.Close 1
Application.ScreenUpdating = True
录制宏的用法只能测试出一些初级VBA用法,很多VBA功能无法通过此种方法测试。比如更改单元格字体,比如调用其他工作簿数据。虽然是挖坟,但我必须指出!请别在这种问题下,用此种回答误导后人!
以下是我一段调用其他工作簿的代码,你可以参考下,但是我坦言,这个方法并不快速。
Dim myApp As New Application
Dim sh As Worksheet
Dim Temp As String
Dim arr
Temp = ThisWorkbook.Path & "\被引用工作簿名称.xls"
myApp.Visible = False
Set sh = myApp.Workbooks.Open(Temp).Sheets("被引用工作表名称")
ThisWorkbook.Sheet1.Range(****)=sh.Range(****)
Set sh = Nothing
Set myApp = Nothing