有没有办法让用户在打开文件后选择要复制的工作表?
我想这样做是因为可能有多个格式相同但名称不同的工作表。
例子:
名为 的原始工作簿VSC (包含表格 比较 , 绘图 )
名为 的辅助工作簿顺丰 (包含工作表 结果 1 、 结果2 、 结果3 )
用户点击 上的按钮VSC , 文件对话框打开,用户选择 顺丰在某个目录中,然后要求用户选择要选择的工作表 - 用户选择 结果2 工作表,复制数据(范围“B2:B5”),然后将其粘贴回 比较 床单。
这可能吗?我不知道如何开始。
当前要求用户选择 SF 工作簿的代码:
Sub GetFilePath()
Dim objFSO as New FileSystemObject
Set myFile = Application.FileDialog(msoFileDialogOpen)
With myFile
.Title = "Choose File"
.AllowMultiSelect = False
If .Show <> -1 Then
Exit Sub
End If
FileSelected = .SelectedItems(1)
End With
最佳答案
这是一种方法。您输入工作表名称。调整复制和粘贴范围以适应。
Sub GetFilePath()
Dim objFSO As New FileSystemObject, w As String, wb As Workbook
Application.ScreenUpdating = False
Set myFile = Application.FileDialog(msoFileDialogOpen)
With myFile
.Title = "Choose File"
.AllowMultiSelect = False
If .Show <> -1 Then
Exit Sub
End If
Set wb = Workbooks.Open(.SelectedItems(1))
End With
w = InputBox("Enter sheet name")
If SheetExists(w) Then
wb.Sheets(w).Range("B2:B5").Copy
ThisWorkbook.Sheets("Compare").Range("A1").pastespecial xlvalues
Else
MsgBox "Sheet not found"
End If
wb.Close False
Application.ScreenUpdating = True
End Sub
Function SheetExists(s As String) As Boolean
Dim x
On Error GoTo NextSheet
x = ActiveWorkbook.Sheets(SheetName).Name
SheetExists = True
Exit Function
NextSheet:
SheetExists = False
End Function
关于vba - 用户选择(工作簿和工作表名称)然后复制和粘贴,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50047634/