Excel宏|将两个宏相加
完成这个新的,我和尝试添加两个宏作为一个。一个将Excel导出到CVS并具有用于保存文件名的对话框和另一个文件对话框文件夹选择器的对话框。我们将不胜感激Excel宏|将两个宏相加,excel,vba,Excel,Vba,完成这个新的,我和尝试添加两个宏作为一个。一个将Excel导出到CVS并具有用于保存文件名的对话框和另一个文件对话框文件夹选择器的对话框。我们将不胜感激 Sub ExportAsCSV() Dim MyFileName As String Dim CurrentWB As Workbook, TempWB As Workbook Set CurrentWB = ActiveWorkbook ActiveWorkbook.ActiveSheet.UsedRan
Sub ExportAsCSV()
Dim MyFileName As String
Dim CurrentWB As Workbook, TempWB As Workbook
Set CurrentWB = ActiveWorkbook
ActiveWorkbook.ActiveSheet.UsedRange.Copy
Set TempWB = Application.Workbooks.Add(1)
With TempWB.Sheets(1).Range("A1")
.PasteSpecial xlPasteValues
.PasteSpecial xlPasteFormats
End With
MyFileName = CurrentWB.Path & "\" & Left(CurrentWB.Name, Len(CurrentWB.Name) - 5) & ".csv"
Application.DisplayAlerts = False
TempWB.SaveAs fileName:=InputBox("Enter file name here, : ", , xFileName), FileFormat:=xlCSV, CreateBackup:=False, Local:=True
TempWB.Close SaveChanges:=False
Application.DisplayAlerts = True
End Sub
'''''''''''''''
'Plus file dialog
'''''''''''''''''''''''
Sub SelectFolder()
Dim diaFolder As FileDialog
Set diaFolder = Application.FileDialog(msoFileDialogFolderPicker)
diaFolder.AllowMultiSelect = False
diaFolder.Show
ActiveSheet.Copy
ActiveWorkbook.SaveAs fileName:= _
diaFolder & ActiveSheet.[d2] & ".xlsx", FileFormat:= _
xlExcel8, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
, CreateBackup:=False
Set diaFolder = Nothing
End Sub
由于你提出的结构,你的问题有点尴尬。通常,名称由函数提供,并由调用过程执行。尝试在项目中实现此结构。下面是函数
Private Function FolderName() As String
Dim FilePicker As FileDialog
Set FilePicker = Application.FileDialog(msoFileDialogFolderPicker)
With FilePicker
.Title = "Select a target folder"
.AllowMultiSelect = False
.InitialFileName = Environ("UserProfile") & "\Documents\"
.ButtonName = "Confirm"
If .Show Then
FolderName = .SelectedItems(1)
End If
End With
End Function
这是应该以某种方式进入调用过程的部分
Dim MyFolder As String
MyFolder = FolderName
If Len(MyFolder) Then MsgBox MyFolder
当然,您的代码不会使用MsgBox,而是使用选定的文件名来实际保存工作簿—SelectFolder过程中包含的代码。关键是,如果用户按下“取消”,则不会尝试保存文件。在这种情况下,函数返回一个空字符串,调用过程通过测试
Len(MyFolder)
识别该空字符串。我想您是在问如何传递变量。四处搜索,了解如何创建用户定义的函数。例如,您可以将中的SelectFolder
更改为返回字符串(文件夹路径)的函数,然后从中保存。将它们添加到一起后,预期的行为是什么?