我正在尝试将多个文件拖放到用户窗体上以获取它们的路径。我用一个文件来管理它,感谢this https://stackoverflow.com/questions/20569959/vba-drag-and-drop-file-to-user-form-to-get-filename-and-path.
当我改变时FilePath = Data.files(1)
to FilePath = Data.Files(2)
or (i)
,我收到一条消息“预期表”。我应该创建一个表并重新调整它吗?
到目前为止我的工作:
这个完成了这项工作(打开文件并将其复制到选定的工作表中)
Dim Wb, FilePath As String
Dim WbIni, WbCib As Workbook
Private Sub CommandButton2_Click()
If FilePath = vbNullString Then
MsgBox "Aucun fichier n'a été importé", vbCritical, "Anomalie"
Unload UserForm1
Exit Sub
End If
Set WbCib = Workbooks.Open(Filename:=FilePath)
MsgBox WbCib.Name
i = WbCib.ActiveSheet.Range("A1").End(xlDown).Row
WbCib.ActiveSheet.Range("A1:A" & i).Copy
ActiveSheet.Paste Destination:=WbIni.Worksheets("Target").Range("A1:A" & i)
WbIni.Sheets("Target").Activate
WbCib.Close
Unload UserForm1
End Sub
这个初始化我的 TreeView 以进行拖放
Private Sub UserForm_Initialize()
Wb = ThisWorkbook.Name
Set WbIni = ActiveWorkbook
TreeView1.OLEDropMode = ccOLEDropManual
End Sub
这给了我文件路径。我想我需要循环它。
Private Sub TreeView1_OLEDragDrop(Data As MSComctlLib.DataObject, Effect As Long, Button As Integer, Shift As Integer, x As Single, y As Single)
FilePath = Data.Files(1)
Workbooks(Wb).Activate
MsgBox FilePath
End Sub