Tag: 目录

基于Dir函数更改标签

我试图通过点击一个button使一个标签在Dropbox目录中的文件名中显示date,但是我点击了它,标签从原来的“…”更改为“”。 这里是代码: Private Sub ShowDate(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_showdate.Click Dim pathname As String = "https://link.com/dropbox/DateFileName*.xlsx" Dim FileName As String = Dir(pathname) lbl_autodate.Text = Microsoft.VisualBasic.Right(FileName, 8) End Sub 我希望标签显示date(文件名中的最后10个字符)。 例如,文件名是DateFileName_02_10_2014,标签应显示02_10_14。

Excel文件目录抓取器

目前我有一个工作簿devise索引一个文件夹,在文件夹path例如'Z:\ Example'中input,它将该文件夹中的所有文件名和文件path导出到工作簿中的另一个工作表中。 我想知道是否可以抓取该文件夹中的所有文件('Z:\ Example'),如果该目录内还有其他文件夹,也可以抓取该文件夹中的所有文件。 例如,我在单元格A19中input'Z:\ Example'(按照下面的代码),'Z:\ Example'中有另一个文件夹,Z:\ Example \ Another'。 “Z:\ Example”和“Z:\ Example \ Another”中的所有文件都被引入到Excel表格2中。 Private Sub CommandButton1_Click() Dim objFSO As Object Dim objFolder As Object Dim objFile As Object Dim i As Integer Dim Source_Workbook As Workbook Dim Target_Path As String 'Create an instance of the FileSystemObject Set objFSO = CreateObject("Scripting.FileSystemObject") 'Path of the […]

在VBA中将文件名从DIR写入单元格

我将下面的macros附加在Dir中的文件中,并将数据复制到主文件(运行macros)中。 我想要做的也是在主文件中写入数据已经被粘贴到列的顶部(单元格E5)的数据已被复制的文件的名称。 您能否提一些build议… Sub Import_Data() ' PURPOSE: To loop through all Excel files in a user specified folder and perform a set task on them Dim WB As Workbook Dim wbThis As Workbook Dim myPath As String Dim myFile As String Dim myExtension As String Dim FldrPicker As FileDialog Set wbThis = ActiveWorkbook ' Optimize […]

VBA – 在Dir()被调用的时候,用Dir()循环

我正在循环使用以下文件夹: Dim file As Variant file = Dir(myFolder) While (file <> "" ) mySub file '<= this sub use Dir() hundreds of times !!! file = Dir() Wend mySub打破了Dir loop因为它给了我不同文件夹的下一个文件。 有没有简单的方法来解决这个限制? 如果不是,你将如何继续? 当前解决scheme 我目前正在使用运行第一个循环存储在一个Array的文件名,然后运行第二个循环处理mySub从Array : Dim file As Variant file = Dir(myFolder) Dim myArray() as String Redim myArray(0) While (file <> "" ) Redim Preserve […]

设置目录和If Len(Dir(…语句在VBA中

我有一个文件存在这个path下: //path/folder1/folder2/datafile.gdp 它是以这种方式从vba调用的外部程序的input: Sub RunProgram() Dim wsh As Object SetCurrentDirectory "\\path\" ChDir "\\path\folder1\folder2\" 'Set Directory Set wsh = VBA.CreateObject("WScript.Shell") check = CurDir Statusnum = wsh.Run(Command:="program.exe ""\\path\folder1\folder2\datafile.gdp""", WindowStyle:=1, waitonreturn:=True) 但是在最后一行中,包括\ path \ folder1 \ folder2 \在input文件名之前似乎会导致外部程序想要将某些文件写入不存在的重复目录,从而导致错误。 在由外部公司更新.exe之前,它曾经以这种格式工作。 它现在想在这里写一些文件,所有文件的前缀都是我的input文件的名称: \\path\folder1\folder2\PATH\FOLDER1\FOLDER2\ 希望能解决这个问题,我把代码的最后一行改成了这个,接着在SO上的一个post上写了一些评论: Statusnum = wsh.Run(Command:="program.exe ""datafile.gdp""", WindowStyle:=1, waitonreturn:=True) 由于在调用.exe之前目录设置正确,我认为删除input文件的path可以解决问题。 该程序现在启动,但似乎没有加载input文件,不再在后台自动运行计算。 相反,它会启动,并且主要的.exe窗口会popup给用户,就好像它刚刚启动来设置一个新项目一样,计算不会自动发生。 要检查哪个目录的VBA代码试图拉我的datafile.gdp,我直接在调用.exe之前创build这些循环: If Len(Dir("\\path\folder1\folder2\datafile.gdp")) = 0 Then FileIsMissing1 […]

编码的UItestingExcel连接string目录错误

我试图用我的编码 – 用户界面testing,但我的连接string不工作。 你能帮我吗? 我是一个nuub在这:)好吧,在这里 – >我的数据目录是C:\(直接在C盘),我的连接string是 [DataSource("System.Data.Odbc", "Dsn=Excel Files;Driver={Microsoft Excel Driver (*.xls)};dbq=C:\\Data1.xls;defaultdir=.;driverid=790;maxbuffersize=2048;pagetimeout=5;readonly=true", "Sheet1$", DataAccessMethod.Sequential), TestMethod] 这完美的作品。 但我想我的文件在“D:\ TestProjects \ Coded2 \ DataFiles \ Data1.xls”,我不能这样做。 得到一些错误和testing失败。 我应该如何写我的数据目录? 感谢您的帮助。

使用当前目录检索数据而不打开Excel工作簿(智能select性导入w / VBA)

(Excel 2010)我试图从各种“目标”工作簿中的不同但相似的文件夹中抓住特定的行。 我发现,当源代码(“LM”,代码正在执行的工作簿以及我想要将数据提取到的目标)和目标工作簿位于同一个文件夹中时,我无法打开目标工作簿,但是当他们在不同的地点(因为他们将在实践中),我收到一个“下标超出范围”的错误 LM.Worksheets("Sheet1").Range("B" & i + 1 & ":G" & i + 1).Value = _ Workbooks(filename).Worksheets("Sheet1").Range("B6:G6").Value 线。 我努力了: 使用path名,dirname和文件名等的每个变体和组合作为后者Workbooks()的参数。 我也有MsgBox我的片断和整个path名和文件名看,这是没有错误的。 replace后面的工作簿(文件名)与工作簿variables(让我们称之为Targ),如LM(工作正常) 用ChDir和ChDrive改变path(&我已经确认CurDir()实际上是运行时的目标目录)并且执行上述操作 使用ThisWorkbook而不是LM进行通话 基本上每一个上述想法的排列 这是一个简洁的(因为机密的东西在那里)版本的代码(这工作正常,如果我解雇Workbooks.Open和Workbooks.Close,但我想要一个更有效的方法,因为这是一个繁忙的networking和人民这些文件一直在进出。事实上,我可以做到这一点,而无需打开文件,如果他们在同一个文件夹告诉我,我正在… …) Sub Import() Dim directory As String, fileName As String, LM As Workbook, i as Integer Set LM = Workbooks("LM.xlsm") i = 1 Dim DirArray As Variant 'this is […]

Excel中的父目录(无VBA)

如何将单元格的值设置为文件所在目录的父级? 在我之前,我有一个冗长乏味的重复的任务,我试图尽可能地自动化,但是VBA是不允许的。 我将要有一个Excel电子表格的目录树,看起来像这样: C:\…\Parent1\Dir2\File3.xlsx …\Parent4\Dir5\File6.xlsx … 我需要一个公式来提取父目录, 例如 ,在这个例子中, Parent1或Parent4 。 [ 注 : 文件和目录名称不遵循任何特定的约定; build议寻找数字将匹配这个匿名的例子,但不会帮助我。 ] 笔记: 我在网上的其他地方find了以下的公式,我也需要这些公式,这些公式可能指向解决scheme。 当前表单名称: = RIGHT(CELL("filename",A1), LEN(CELL("filename",A1)) – FIND("]", CELL("filename",A1))) 当前文件名称: = MID(CELL("filename",A1), FIND("[", CELL("filename",A1)) + 1, FIND(".", CELL("filename",A1)) – (FIND("[", CELL("filename",A1)) + 1)) 当前目录名称(来自MrExcel.com ): = TRIM(RIGHT(SUBSTITUTE(LEFT(CELL("filename",A1), FIND("[", CELL("filename",A1), 1) – 2), "\", REPT(" ",100)), 100)) 海报解释了他的方法: 它通过获取DIR并用100个空格replace所有“\”来工作。 […]

我怎样才能改善我的处理替代Application.FileSearch VBA的function

我已经决定尝试UDF替代Application.FileSearch。 我假设一些文件可能位于的位置。 互联网上的解决scheme倾向于假定用户通常知道文件所在的位置,假设它可以在任何地方, 编辑:在互联网上的解决scheme很多是啰嗦,我相信它应该是更有效率,因此使用这个post作为一个讨论的手段,以便如何可以实现 Please note, I have replaced the path directories with an 'X' and the file name is just "File Name" Public Function FindFile() If Len(Dir("C:\X\X\X\File Name.xlsm", vbDirectory)) <> 0 Then Workbooks.Open ("C:\X\X\X\File Name.xlsm"), UpdateLinks:=False ElseIf Len(Dir("C:\X\File Name.xlsm", vbDirectory)) <> 0 Then Workbooks.Open ("C:\X\File Name.xlsm"), UpdateLinks:=False ElseIf Len(Dir("C:\X\X\File Name.xlsm", vbDirectory)) <> 0 Then […]

Excel vba读取大量文件的速度更快

我有一个代码,find所有文件以特定名称开始,并从它们中读取数据,文件夹中通常有1k或更多的文件,我写了一个基准,并意识到我的代码每秒读取aprox 1文件,这是一个很多时间。 我是vba新手,我想知道如果我误解了这个问题? function代码: Function ReadDataFromWorksheet() Dim XL As Excel.Application Dim WBK As Excel.Workbook Dim i As Integer i = 1 Set XL = CreateObject("Excel.Application") Do While i < (ArraySize + 1) Set WBK = XL.Workbooks.Open("PATH TO FILE") Array(i).Data1 = WBK.ActiveSheet.Range("F6").Value WBK.Close SaveChanges:=False i = i + 1 Loop Set XL = Nothing End Function […]