天道酬勤,学无止境

Mac excel 2011 中的 Application.Filedialog 支持(Application.Filedialog support in Mac excel 2011)

问题

几个问题

  • Mac excel 2011 vba 中是否支持 Application.Filedialog(msoFileDialogSaveAs)?
  • Application.Filedialog(msoFileDialogSaveAs) 和 Application.Dialogs(xlDialogSaveAs) 的区别?
回答1

我刚刚回答了这个问题,这里引用了你的问题。

还支持您的问题:-

Mac excel 2011 vba 中是否支持 Application.Filedialog(msoFileDialogSaveAs)?

不,它不是,但是 Mac VBA 中有一个名为MacScript的内置函数,您可以通过它传递 applescript 以获取值,请参阅我之前链接的线程以获取更多详细信息。

Application.Filedialog(msoFileDialogSaveAs) 和 Application.Dialogs(xlDialogSaveAs) 的区别?

Application.Filedialog 可以访问四个文件对话框样式框: -

  • 打开对话框- 允许用户选择一个或多个文件,然后您可以使用 Execute 方法在主机应用程序中打开这些文件。
  • 另存为对话框- 允许用户选择一个文件,然后您可以使用 Execute 方法将当前文件保存为该文件。
  • 文件选取器对话框- 允许用户选择一个或多个文件。 用户选择的文件路径被捕获在 FileDialogSelectedItems 集合中。
  • 文件夹选择器对话框- 允许用户选择路径。 用户选择的路径被捕获在 FileDialogSelectedItems 集合中。

Application.Dialogs 可以访问 Excel 中可用的所有内置对话框,其中之一是“另存为”对话框。

受限制的 HTML

  • 允许的HTML标签:<a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • 自动断行和分段。
  • 网页和电子邮件地址自动转换为链接。

相关推荐
  • Application.Filedialog support in Mac excel 2011
    Couple of questions Is Application.Filedialog(msoFileDialogSaveAs) support in Mac excel 2011 vba? Difference between Application.Filedialog(msoFileDialogSaveAs) and Application.Dialogs(xlDialogSaveAs)?
  • 找不到 VBA Application.FileDialog(VBA Application.FileDialog not found)
    问题 我在 Mac 上运行 Excel 2011,我的一个应用程序在 Windows 版本上运行,但在我的 Mac 上不起作用。 它在 Application.FileDialog 中找不到方法“FileDialog”。 我正在使用参考 ms office 14.0 对象库、vba、ms excel 14.0 对象库、ole 自动化和 ms forms 2.0 对象库。 为什么我的 mac 上的应用程序类不存在 FilDialog 方法,但它适用于我的 Windows? 回答1 根据本文,Excel 2011 中不存在Application.FileDialog 。 试试这个解决方案,它会创建一个函数。 解决方案如下,并允许它在 Macintosh 上工作: Function myGetOpenFileName(Optional sPath As String) As String Dim sFile As String Dim sMacScript As String If isMac Then If sPath = vbNullString Then sPath = "the path to documents folder" Else sPath = " alias """ & sPath & """" End If sMacScript = "set sFile to
  • VBA Application.FileDialog not found
    I am running Excel 2011 on a Mac and one of my applications, which works on windows versions, does not work on my Mac. It cannot find the method "FileDialog" in Application.FileDialog. I am using the references ms office 14.0 object library, vba, ms excel 14.0 object library, ole automation, and ms forms 2.0 object library. Why does the method FilDialog not exist for the application class on my mac, but it works on my windows?
  • 将 csv 文件导入 excel 非活动工作表的宏(macro to Import csv file into an excel non active worksheet)
    问题 我有一个启用宏的 excel 工作簿,其中包含多个命名工作表。 其中一个工作表命名为“面板”,第二个工作表命名为“数据”。 名为“面板”的工作表有一个分配了宏的按钮。 我想选择名为“面板”的工作表上的按钮并显示浏览文件窗口。 一旦用户在其硬盘驱动器上选择了 csv 文件,我希望将 csv 文件的内容导入到从单元格 A1 开始的名为“数据”的工作表中。 问题 1:我分配给按钮的 vba 导致 csv 文件的内容与按钮(“面板”工作表)放在同一个工作表上。 我希望将 csv 文件的内容放在“数据”表上。 问题 2:此外,有一串代码引用了我的硬盘驱动器和一个名为“capture.csv”的文件。 因此,当启用宏的 excel 文件在另一台计算机上时,文件会崩溃。 有什么方法可以删除路径字符串以便任何计算机都可以使用该文件? 任何解决此问题的帮助将不胜感激。 分配给按钮的宏如下: Sub load_csv() Dim fStr As String With Application.FileDialog(msoFileDialogFilePicker) .Show If .SelectedItems.Count = 0 Then MsgBox "Cancel Selected" End End If 'fStr is the file path and name of the file
  • 从文本文件导入到 Excel(Import from text files to Excel)
    问题 我正在尝试编写一个 VBA 宏,它会在运行后立即提示用户选择一个目录。 一旦用户选择了一个目录,宏将扫描其中的所有*.txt文件,并将其每个内容放在G列下的新行中。 因此,第一个文本文件的内容将在G2 ,第二个文本文件在G3 ,依此类推。 我浏览了很长时间的 StackOverFlow 并找到了一个工作代码 Function GetFolder() As String Dim fldr As FileDialog Dim sItem As String Set fldr = Application.FileDialog(msoFileDialogFolderPicker) With fldr .Title = "Select a Folder" .AllowMultiSelect = False .InitialFileName = Application.DefaultFilePath If .Show <> -1 Then GoTo NextCode sItem = .SelectedItems(1) End With NextCode: GetFolder = sItem Set fldr = Nothing End Function 我还做了一些非常糟糕的硬编码,只将一个文本文件导入单元格G2 With ActiveSheet.QueryTables.Add
  • 将数据从文本文件复制到 Excel 工作簿(Copying data from a text file to an Excel workbook)
    问题 目前我可以使用 vba 将文本文件导入到 excel 中。 但是,我不知道如何将文本文件中的数据复制到当前工作簿中。 每次我运行该程序时,它都会为每个文本文件打开一个新的工作簿。 Sub CopyData() Dim fileDialog As fileDialog Dim strPathFile As String Dim strFileName As String Dim strPath As String Dim dialogTitle As String Dim wbSource As Workbook Dim rngToCopy As Range Dim rngRow As Range Dim rngDestin As Range Dim lngRowsCopied As Long dialogTitle = "Navigate to and select required file." Set fileDialog = Application.fileDialog(msoFileDialogFilePicker) With fileDialog .InitialFileName = "C:\Users\User\Documents" .AllowMultiSelect = True .Filters.Clear .Title = dialogTitle If
  • 使用 VBA 将 Wordpad 中的行复制到 Excel 中(Copying lines from Wordpad into Excel using VBA)
    问题 我正在编写一些代码,在其中我在 TMX(一种 xml 形式)下导入一些文件。 我尝试了各种选择 a) 使用 Open FileName For 输入,但这会弄乱字符编码 b) 使用 msoDialog 打开文件并复制数据,但如果文件太大(通常是这种情况),这将返回错误,这会使数据完全混乱。 c) 使用记事本打开文件,但在将整个文件复制到 Excel 方面与上一个选项存在相同的限制。 我不想使用 shell 函数调用写字板。 我现在的问题是,我需要逐行复制文件以根据我的需要处理其内容(希望不会丢失字符编码 有人会知道如何从写字板中打开的文件中复制每一行并将其后处理(相关元素的选择)粘贴到 Excel 中吗? 谢谢 回答1 对于大文件,您可以使用此解决方案: Public Sub ImportTMXtoExcel() Call Application.FileDialog(msoFileDialogOpen).Filters.Clear Call Application.FileDialog(msoFileDialogOpen).Filters.Add("TMX Files", "*.tmx") Application.FileDialog(msoFileDialogOpen).Title = "Select a file to import..." Application
  • 使用FileDialog打开工作簿并在Excel VBA中进行操作(Open a workbook using FileDialog and manipulate it in Excel VBA)
    问题 我正在学习如何使用Excel宏,并找到了以下代码: Dim fd As Office.FileDialog Set fd = Application.FileDialog(msoFileDialogFilePicker) With fd .AllowMultiSelect = False .Title = "Please select the file to kill his non colored cells" .Filters.Add "Excel", "*.xls" .Filters.Add "All", "*.*" If .Show = True Then txtFileName = .SelectedItems(1) End If End With 此代码将打开FileDialog。 如何在不覆盖以前打开的Excel文件的情况下打开所选的Excel文件? 回答1 谢谢Frank.i有了这个主意。 这是工作代码。 Option Explicit Private Sub CommandButton1_Click() Dim directory As String, fileName As String, sheet As Worksheet, total As Integer Dim fd As Office.FileDialog Set fd =
  • Excel VBA,不使用Application.FileDialog()导入文件夹内所有文件的名称(Excel VBA, import the names of all files in the folder without using Application.FileDialog())
    问题 我有一个文件夹(每次都是同一个文件夹 - 所以我不需要浪费时间用 Application.FileDialog 选择它),我需要将所有文件名提取到 Excel 列 C 中。 这是我在 stackoverflow 上找到的带有 Application.FileDialog() 的代码,但我想硬编码文件夹的路径 (C:\Users\michal\SkyDrive\csv\bossa\mstcgl_csv)。 另一个问题我有(重要的)什么是 xDirectory$、xFname$ 和 InitialFoldr$ 变量末尾的 $ 符号,为什么我不能将它们声明as String ? ? 这些变量不是字符串吗? ? 这是代码: Sub GetFileNames() Dim Lista As Worksheet Dim xRow As Long Dim xDirectory$ Dim xFname$ Dim InitialFoldr$ Dim start As Double Dim finish As Double Dim total_time As Double start = Timer ' remember time when macro starts. ThisWorkbook.Sheets("Lista").Range("C1").Select InitialFoldr$ =
  • 未找到 Outlook Application.FileDialog(Outlook Application.FileDialog not found)
    问题 我正在为 Outlook 编写 VBA 宏,但 Application.FileDialog 方法不可用。 目的是让用户选择一个文件夹 - 不是 Outlook 电子邮件文件夹,而是文件系统目录文件夹。 以下是我启用的参考: Visual Basic for Applications Microsoft Outlook 15.0 对象库 Microsoft Office 15.0 对象库 OLE 自动化 Microsoft Forms Microsoft Office 15.0 对象库 OLE 自动化 Microsoft Forms 对象库 Microsoft 脚本运行时 Microsoft Office 15.0 Access 数据库引擎对象库 有任何想法吗? 回答1 Outlook 不支持 FileDialog 对象。 这是一个解决方法: Dim xlApp As Object Set xlApp = CreateObject("Excel.Application") xlApp.Visible = False Dim fd As Office.FileDialog Set fd = xlApp.Application.FileDialog(msoFileDialogFilePicker) Dim selectedItem As Variant If fd.Show =
  • Excel VBA, import the names of all files in the folder without using Application.FileDialog()
    I have a folder (every time it's the same one - so I don't need to waste time to pick it with Application.FileDialog) and I need to extract all files names into the Excel column C. This is the code that I've found here on stackoverflow with Application.FileDialog(), but I would like to hard code the path to the folder (C:\Users\michal\SkyDrive\csv\bossa\mstcgl_csv). Another Question I have (important) what is $ sign at the end of the xDirectory$, xFname$ and InitialFoldr$ variables, and why I can't declare them as String ? ? Are these variables are not string ? ? this is the code: Sub
  • 在visio vba中打开一个fileDialog(open a fileDialog in visio vba)
    问题 我在 vba Word 和 visio 2013 上编写宏。我想打开一个 fileDialog,以便用户可以选择保存文件的位置。 我在 word 上取得了成功,但在 visio 中它的工作方式不一样。 我用word写了这个: Dim dlg As FileDialog Dim strPath As String 'Boite de dialogue pour choisir où enregistrer son fichier Set dlg = Application.FileDialog(msoFileDialogFolderPicker) With dlg .InitialFileName = Application.ActiveDocument.Path .AllowMultiSelect = False .Title = "Choisir le répertoire d'enregistrement" .Show End With strPath = dlg.SelectedItems(1) 但它在 visio 中不起作用。 有人可以帮我在 visio 中做同样的事情吗? 回答1 虽然它说 Visio 有Application.FileDialog ,但它会在 Visio VBA 中失败。 但是,作为一种解决方法,您可以通过 Excel、Word 或其他
  • VBA Excel FileDialog 将所选项目作为对象返回(VBA Excel FileDialog return selecteditem as object)
    问题 我在 VBA for Excel 中使用一个函数来搜索文件并要求用户选择未找到。 当我使用application.filedialog filepicker选择文件时, .selecteditem(1)作为字符串返回,但我理想情况下需要它作为对象返回。 有没有办法转换这个,还是我从一开始就走错了路? Public myDir As String Public newFilePath As String Public FileSys As Object Public myFolder Function LoadFileName(FileStart As String, FileType As String) newFilePath = ActiveWorkbook.Path myDir = newFilePath & "\Daily reports" ChDrive (Left(ActiveWorkbook.Path, 2)) ChDir myDir Set FileSys = CreateObject("Scripting.FileSystemObject") Set myFolder = FileSys.GetFolder(myDir) On Error GoTo FileNotFound Dim dteFile As Date Dim oFS As Object Dim
  • SaveAs 功能适用于 Microsoft PC 但不适用于 MAC(SaveAs function works on Microsoft PC but not on MAC)
    问题 我有 VBA 代码,可以控制用户以 .xls、.xlsm 或 .pdf 以外的任何其他格式保存文件。 这是为了防止在保存过程中剥离宏。 我插入了一行来检查操作系统是否是 OSx(...像“ Mac ”),它可以在其他宏中运行,但在这个宏中不起作用。 该过程失败并显示“无法找到文件对象或库”,并突出显示“msoFileDialogSaveAs”。 这是我的代码: Option Explicit Option Compare Text Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, _ Cancel As Boolean) Dim fso As Object 'FileSystemObject Dim PdfSave As Boolean Dim SheetName As String If Not Application.OperatingSystem Like "*Mac*" Then SheetName = ActiveSheet.Name 'Save-As action? If SaveAsUI Then Set fso = CreateObject("Scripting.FileSystemObject") 'Abort excel's dialog Cancel = True 'Create our
  • VBA 打开 Excel 文件(VBA to open an Excel File)
    问题 我正在尝试使用 VBA 在 excel 文件的文件夹中打开一个 excel 文件。 我指示我的代码将最终用户直接带到文件夹并允许他从对话框中选择文件。 但是即使从对话框中选择文件,我也无法打开它。 我对问题的理解是 - 我错过了在选择文件后打开文件的命令。 这是我的代码, thisYear = Year(Date) 'change the display name of the open file dialog Application.FileDialog(msoFileDialogOpen).Title = _ "Select Input Report" 'Remove all other filters Application.FileDialog(msoFileDialogOpen).Filters.Clear 'Add a custom filter Call Application.FileDialog(msoFileDialogOpen).Filters.Add( _ "Excel Files Only", "*.xls*") 'Select the start folder Application.FileDialog(msoFileDialogOpen _ ).InitialFileName = "\\driveA\Reports\" & thisYear &
  • VBA Excel FileDialog return selecteditem as object
    I am using a function in VBA for Excel to search for a file and ask the user to select of not found. When I use the application.filedialog filepicker to select the file the .selecteditem(1) is returning as a string but I ideally need it returning as an object. Is there a way to convert this or am I going the wrong way about it from the start? Public myDir As String Public newFilePath As String Public FileSys As Object Public myFolder Function LoadFileName(FileStart As String, FileType As String) newFilePath = ActiveWorkbook.Path myDir = newFilePath & "\Daily reports" ChDrive (Left
  • 显示“打开文件”对话框(Show “Open File” Dialog)
    问题 如何在Access 2007 VBA中显示打开的文件(或文件选择)对话框? 我已经尝试像在Excel中一样使用Application.GetOpenFileName,但是该功能在Access中不存在。 回答1 我对Renaud Bompuis的回答的评论混乱了。 实际上,您可以使用后期绑定,并且不需要引用11.0对象库。 以下代码无需任何引用即可工作: Dim f As Object Set f = Application.FileDialog(3) f.AllowMultiSelect = True f.Show MsgBox "file choosen = " & f.SelectedItems.Count 请注意,以上内容在运行时也很好用。 回答2 在Access 2007中,您只需要使用Application.FileDialog 。 这是Access文档中的示例: ' Requires reference to Microsoft Office 12.0 Object Library. ' Private Sub cmdFileDialog_Click() Dim fDialog As Office.FileDialog Dim varFile As Variant ' Clear listbox contents. ' Me.FileList.RowSource
  • Open a workbook using FileDialog and manipulate it in Excel VBA
    I am learning how to use Excel macros and I found this code: Dim fd As Office.FileDialog Set fd = Application.FileDialog(msoFileDialogFilePicker) With fd .AllowMultiSelect = False .Title = "Please select the file to kill his non colored cells" .Filters.Add "Excel", "*.xls" .Filters.Add "All", "*.*" If .Show = True Then txtFileName = .SelectedItems(1) End If End With This code opens the FileDialog. How can I open the selected Excel file without over-writing the previously opened?
  • VBA to open an Excel File
    I am trying to open an excel file in a folder of excel files using VBA. I direct my code to take the end user straight to the folder and allow him to choose the file from the dialog box. But I am not able to open the file even after selecting it from the dialog box. My understanding of the problem is - I am missing out on the Command to open the file after selecting it. Here is my Code, thisYear = Year(Date) 'change the display name of the open file dialog Application.FileDialog(msoFileDialogOpen).Title = _ "Select Input Report" 'Remove all other filters Application.FileDialog
  • Excel VBA 在 PDF 中搜索文本并提取和命名页面(Excel VBA to Search for Text in PDF and Extract and Name Pages)
    问题 我有以下代码,它查看电子表格 A 列中的每个单元格,搜索它在指定 PDF 中找到的文本,然后提取找到该文本的页面作为 PDF,并使用电子表格的单元格。 代码有效但速度很慢,我可能需要在 PDF 中搜索多达 200 个单词,其中可能长达 600 页。 有没有办法让代码更快? 目前它循环遍历每个单元格搜索每个页面循环遍历每个单词,直到在单元格中找到该单词。 Sub test_with_PDF() Dim objApp As Object Dim objPDDoc As Object Dim objjso As Object Dim wordsCount As Long Dim page As Long Dim i As Long Dim strData As String Dim strFileName As String Dim lastrow As Long, c As Range Dim PageNos As Integer Dim newPDF As Acrobat.CAcroPDDoc Dim NewName As String Dim Folder As String lastrow = Sheets("Sheet1").Cells(Rows.Count, "A").End(xlUp).Row strFileName = selectFile() Folder =