vba,word和excel相互调用

来源:百度知道 编辑:UC知道 时间:2024/05/25 00:58:41
我知道如果要在word中调用excel或做相反操作,只需用createobject函数创建相应的对象。我还知道然后可以用workbooks.open(路径)来打开相应的文件来操作。但是我不想这样做。
我想在宏执行前就把要调用的文件打开,然后直接调用打开的文件,而不是在宏执行的过程中打开。请教方法。
如果在宏中用路径打开被调用的文件,那么该文件就必须放在路径指定的位置,我不想这样。我想放在任意位置。

总是要有一个打开的时机的,总要有一段打开的代码,不然怎么凭空打开,怎么获取打开的文件名.
如果你想在你的宏运行前打开,你可以把调用与打开的代码放在宏运行的前面.
如:以excel打开word为例,你可以在Workbook_Open下放置你调用和打开word 的代码:
Private Sub Workbook_Open()
dim aaa as ...application
End Sub
方法你应该比较熟悉了,就是在vbaproject下双击ThisWorkbook,然后在上边的下拉列表里选对象和事件.

如果在宏中用路径打开被调用的文件,那么该文件就必须放在路径指定的位置,我不想这样。我想放在任意位置。

放在任意位置你可以用一个打开对话框呀,
如下面代码:
Dim fd As FileDialog
Dim Wbook As Workbook
Dim rowindex As Integer
Set fd = Application.FileDialog(msoFileDialogFilePicker)

Dim vrtSelectedItem As Variant

With fd
.Filters.Add "EXCEL 文件", "*.xls", 1 ‘过滤
If .Show = -1 Then
rowindex = 1

For Each vrtSelectedItem In .SelectedItems
Set Wbook = Workbooks.Open(vrtSelectedItem)

如果你不是由Word的VBA来打开的,Word就不能获得那个打开的Excel文件的访问对象句柄,就没有办法访问。
我不明白你为什么不想用VBA来打开另一个对象的文件。