VBA表单激活问题
各位大佬好:最近刚学习的VBA遇到了点问题,需求是这样,需要将一张表格A里面部分数据,复制到另一张表格B里面去,是通过如下代码去进行的
Sub 排表()
Dim path_预排, path_pooling, path1 As String
Dim m, i As Integer
Dim wb1, wb2 As Excel.Workbook
Application.DisplayAlerts = False
Application.ScreenUpdating = False
path_pooling = ActiveWorkbook.Name'当前点击的工作表的名字
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False '单选择
.Filters.Clear '清除文件过滤器
.Filters.Add "Excel Files", "*.xlsx;*.xls"
.Filters.Add "All Files", "*.*" '设置两个文件过滤器
If .Show = -1 Then 'FileDialog 对象的 Show 方法显示对话框,并且返回 -1(如果您按 OK)和 0(如果您按 Cancel)。
path_预排 = .SelectedItems(1)
Else
Exit Sub
End If
End With
Workbooks.Open Filename:=path_预排, UpdateLinks:=0, ReadOnly:=True
path_预排 = ActiveWorkbook.Name '信息单工作表的名字
m = Range("G" & Rows.Count).End(xlUp).Row
MsgBox m
End Sub
现在的问题是表格激活是A,但是 m 选择的是我启动VBA的表格的sheet去执行的,能指点一下怎么样才能让代码执行A表么(path_预排)
a表通过文件打开框选择??
或者开绝对路径??? wp231957 发表于 2021-12-30 15:02
a表通过文件打开框选择??
或者开绝对路径???
a表通过文件打开框选择,大佬指点一下 米菲和星 发表于 2021-12-30 15:08
a表通过文件打开框选择,大佬指点一下
试试这个
Sub wp()
With Application.FileDialog(msoFileDialogFilePicker)
.AllowMultiSelect = False '单选择
.Filters.Clear '清除文件过滤器
.Filters.Add "Excel Files", "*.xlsx;*.xls"
.Filters.Add "All Files", "*.*" '设置两个文件过滤器
If .Show = -1 Then 'FileDialog 对象的 Show 方法显示对话框,并且返回 -1(如果您按 OK)和 0(如果您按 Cancel)。
path_预排 = .SelectedItems(1)
Else
Exit Sub
End If
End With
Workbooks.Open Filename:=path_预排, UpdateLinks:=0, ReadOnly:=False
ActiveWorkbook.Activate
m = Range("a1")
MsgBox m
End Sub
wp231957 发表于 2021-12-30 15:51
试试这个
大佬,我这个是用测试表的vba运行的,实际要引用打开表里的数据,您这个我试了一下,返回值仍然不对,有大佬提示我用set,我试了下,set可行
页:
[1]