Tag: 绝对path

已启用macros的工作簿保存到错误的文件夹中

当我使用下面的代码来: 保存启用macros的工作簿 与打开的工作簿位于同一个文件夹中 它会以错误的名称在桌面上保存该文件: Sub Save_New_MacroEnabledFile() Dim thisWb As Workbook Set thisWb = ActiveWorkbook Worksheets("Sheet_with_VBA_Button").Activate ActiveWorkbook.SaveAs Filename:=thisWb.Path & Sheets("Sheet_with_NewFile's_Name").Range("A2"), FileFormat:= _ xlOpenXMLWorkbookMacroEnabled, Password:=vbNullString, WriteResPassword:=vbNullString, _ ReadOnlyRecommended:=False, CreateBackup:=False End Sub 我究竟做错了什么?

与RegQueryValueEx奇怪的行为whitch返回值的另一个寄存器

我想从registry的Excel.exe的path。 所以我使用了以下内容: 我正在使用Windows64位 RegOpenKeyEx(HKEY_LOCAL_MACHINE, szKey, 0, KEY_READ, &hKey) 同 szKey = "\Classes\CLSID\{ExcelCLSID}\LocalServer", 该寄存器包含“C:\ PROGRA〜1 \ MIF5BA〜1 \ Office15 \ EXCEL.EXE / automation” 用它来获取Excel.exepath RegQueryValueEx(hKey, NULL, NULL, NULL, (BYTE*)szPath, &cSize) 所以当构build我的解决scheme的平台x64 ,我得到的path C:\\PROGRA~1\\MIF5BA~1\\Office15\\EXCEL.EXE /automation 这是好的 ,但是当我构build我的Win32平台的解决scheme时,我得到以下path "C:\\Program Files\\Microsoft Office\\Office15\\EXCEL.EXE" /automation 这很奇怪,因为这个值存储在下面的registry中 HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID\{ExcelCLSID}\ 我在这里错过了什么?

VBA意外的字符在文件名称变通办法

我正在使用vba shell来运行R代码,但是我遇到了文件名的问题。 文件path中有一个反斜杠,后面跟着下划线。 我无权删除下划线。 使用此path运行代码时,会引发意外的字符错误。 如果我用不同path的文件运行代码,这不是一个更长期的解决scheme,代码将无缝地运行。 Sub RunRscript() Dim s As String Dim n As Integer Dim shell As Object Set shell = VBA.CreateObject("WScript.Shell") Dim waitTillComplete As Boolean: waitTillComplete = True Dim style As Integer: style = 1 Dim errorCode As Integer Dim path As String path = """C:\Program Files\R\R-3.2.3\bin\Rscript.exe""V:\_Our Division\R_Script.R -R & Pause " […]

Python 没有这样的文件或目录

我试图遍历一个只包含xls文件的文件夹并逐个打开它们。 注意:所有的xsl文件都被列举为“001_text.xls”,…“030_text.xls”。 我的代码是: xls_path=r'C:\path\to\my\folder' for file in os.listdir(xls_path): book = xlrd.open_workbook(file) sheet = book.sheet_by_index(0) filt_xls = [ el for el in sheet.col_values(0)] print file.title() print filt_xls 问题是,我只得到第一个文件(001_text.xls)的输出,并连续出现错误: IOError: [Errno 2] No such file or directory: '002_Testo.xls' 有没有办法解决它?

使用VBA脚本将Excel转换为XML时,避免“另存为”对话框

我正在尝试编写一个将excel文件转换为XML的VBA脚本。 我正在使用Application.GetSaveAsFilename()函数获取文件名。 但是这个function打开了“另存为”对话框。 我想压制对话框,以防止用户在每次运行代码时手动单击保存。 相反,应该在硬编码的位置静静地生成XML。 码: Sub BasicRTE() Dim FileName As Variant Dim Sep As String Dim Ws As Worksheet Dim autoSetFileName As String Dim folderName As String Dim location As Integer ChDrive (Left(ThisWorkbook.Path, 1)) ChDir ThisWorkbook.Path ChDir ".." ChDir "InputFiles" Application.SendKeys ("{ENTER}") FileName = Application.GetSaveAsFilename( _ InitialFileName:=ThisWorkbook.Worksheets(1).Name, _ FileFilter:="Xml Files (*.xml),*.xml") location = InStrRev(FileName, […]

将工作表复制到另一个工作簿 – path错误

我正在尝试编写一个代码来将工作表复制到打开的工作簿中。 但最后我得到一个path错误。 代码现在看起来像这样; Sub Storyboard_Ekle() Dim DosyaSec As Office.FileDialog Set DosyaSec = Application.FileDialog(msoFileDialogFilePicker) With DosyaSec .AllowMultiSelect = False .Title = "Lütfen yeni eklenecek Storyboard dosyasini seçiniz." .Filters.Clear .Filters.Add "Excel Macro-Enabled Workbook", "*.xlsm" .Filters.Add "Excel Workbook", "*.xlsx" .Filters.Add "All Files", "*.*" If .Show = True Then YeniSB = .SelectedItems(1) End If Dim YeniStoryBoard As Workbook Dim […]

如何获得Application.GetSaveAsFilename VBA的dynamic位置?

我有下面的代码来保存我的工作簿文件为WriteResPassword,但有没有办法从Application.GetSaveAsFilename接口中获取当前工作簿的path? 现在保存为界面显示文档文件夹,所以它需要5-10多点击才能到达我想要的地方。 Sub PasswordSave() Application.DisplayAlerts = False Application.ScreenUpdating = False SaveAsName = Application.GetSaveAsFilename(FileFilter:="Excel Files (*.xlsx), *.xlsx") ActiveWorkbook.SaveAs Filename:=SaveAsName, FileFormat:= xlNormal, WriteResPassword:="test", ReadOnlyRecommended:=False, CreateBackup:=False End Sub

使用Excelmacros更改数据透视表外部数据源path

我正在MS Excel中的一个项目中,我有几个数据透视表使用Microsoft Text Driver从第一行(与Excel文件位于同一目录中)的列名分隔的文本文件中读取数据。 我遇到了一个问题,当我将文本和Excel文件复制到一个新的目录,并尝试刷新数据说它无法find文本文件。 不幸的是,似乎没有办法告诉Excel我希望文本文件的path是相对的,而不是绝对的。 所有的数据透视表使用相同的数据连接,所以我认为编写一个macros来更新数据连接来引用正确的文本文件并且有一个链接到macros的button将不会太具有挑战性,文件path并为我刷新数据。 我对VBA不太熟悉,在线文档似乎很糟糕,所以我一直无法得到这个工作 – 我可以创build正确的文件path,可以刷新数据,但我没有能够找出如何更新连接以使用新的文件path,但保留其所有旧的导入/文件分析设置。 我也尝试录制一个macros,同时手动更新数据源,但由于某种原因,总是给我错误的中断logging,所以没有帮助。 以下是连接当前使用的连接string和命令文本,但没有关于如何parsing/导入数据(该文件是制表符分隔或在第一列有标题等),所以我不知道如何确保连接保持该数据。 连接string: DefaultDir=C:/directoryPath;Driver={Microsoft Text Driver (*.txt; *.csv)}; DriverId=27;FIL=text;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5; SafeTransactions=0;Threads=3;UserCommitSync=Yes; 命令文本: SELECT * FROM tableName.txt tableName 如果有人知道如何编写一个macros来更新连接到文本文件的path,请分享一下代码,或者如果你知道如何build立一个相对的path,那也是很棒的。 任何帮助将不胜感激! 编辑: 我一直在搞这个,我可以改变连接string来使用新的path。 然而,当我去刷新数据透视表时,它将所有数据作为文本导入,而不是猜测它是否应该是数字等等(尽pipe它至less从文本文件的第一行获取列标题)。 任何想法如何告诉它猜测数据types(或只是保持旧的数据types)? 我现在使用的代码是: Public Sub Test() Dim wb As Excel.Workbook Dim pc As PivotCache Dim path As String Set wb = ActiveWorkbook path = wb.path […]

尝试创build打开新工作表的Excel VBAmacros,根据原始工作表中的相对单元格的值重命名它

我有一个主要的联系人列表。 我正在尝试创build一个使用相对参考点的macros来: 打开一个特定的图纸模板给它一个名称= ActiveCell的值或在macros中激活的第一个单元格,复制并粘贴主列表中的信息到打开的新工作表 我可以弄清楚如何打开工作表并进行复制和粘贴,但是在重新命名工作表时,我总是得到一个错误。 ActiveCell.Range("A1,A2:B26").Select ActiveCell.Offset(1, 0).Range("A1").Activate ActiveWindow.ScrollRow = 5 ActiveWindow.ScrollRow = 4 ActiveWindow.ScrollRow = 3 ActiveWindow.ScrollRow = 2 ActiveWindow.ScrollRow = 1 ActiveCell.Offset(-1, 0).Range("A1").Select Sheets("Patient List").Select Sheets.Add Type:= _ "C:\Users\Valerie\AppData\Roaming\Microsoft\Templates\Patient-History-Template1.xltx" Sheets("Patient List").Select Selection.Copy Sheets("Patient List").Select Sheets("Patient List").Name = "Patient List" Sheets("Patient 1").Select 在这里,下面是我希望新的名单=在macros中激活的第一个单元格的相对值,而不是“琼斯”。 这样我可以运行macros,并获得单独的表中的每个名称在A列。 Sheets("Patient 1").Name = "Jones" Sheets("Jones").Select ActiveSheet.Paste Sheets("Patient List").Select ActiveCell.Offset(0, 1).Range("A1").Select […]

我的相对path有什么问题?

嘿,所以我想使用相对path访问Excel文件,因为应用程序将运行在不同的计算机上,所以path不会总是相同的。 现在我正在做这样的事情: string exdestination = ".\\..\\..\\..\\Files"; string difDestination = Path.Combine(exdestination, "CATTII." + exTable + "-diff.xls"); //string difDestination = @"C:\Users\Me\Documents\Visual Studio 2010\Projects\TranslatorHelper\Files\CATTII.en-US-diff.xls"; 最后一行是一个注释行,显示了它应该是的path。 但是我不断收到错误:Microsoft Office Excel不能访问文件“C:\ Files”。 有几个可能的原因: ?文件名或path不存在。 •该文件正在被另一个程序使用。 ?试图保存的工作簿与当前打开的工作簿具有相同的名称。 任何帮助将不胜感激。 谢谢!