Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
不带文件扩展名的excel vba文件名提取_Vba_Excel - Fatal编程技术网

不带文件扩展名的excel vba文件名提取

不带文件扩展名的excel vba文件名提取,vba,excel,Vba,Excel,我有下面的excel vba代码从文件夹中获取txt文件并将其放入excel Sub testfilelistfromfolder() Dim varDirectory As Variant Dim flag As Boolean Dim i As Integer Dim strDirectory As String strDirectory = Application.ActiveWorkbook.Path & "\" i = 1 flag = True varDirectory =

我有下面的excel vba代码从文件夹中获取txt文件并将其放入excel

Sub testfilelistfromfolder()
Dim varDirectory As Variant
Dim flag As Boolean
Dim i As Integer
Dim strDirectory As String

strDirectory = Application.ActiveWorkbook.Path & "\"
i = 1
flag = True
varDirectory = Dir(strDirectory & "*.txt", vbNormal)
Range("B3:B82").Select
Selection.ClearContents

While flag = True
    If varDirectory = "" Then
        flag = False
    Else
        Cells(i + 2, 2) = varDirectory
        varDirectory = Dir
        i = i + 1
    End If
Wend

End Sub
所以我的问题是: 有没有办法列出不带.txt扩展名的txt文件名? 或者我应该添加一行来修剪名称? 大概是这样的:

variable = Left(Sheet1.[A1],InStr(Sheet1.[A1],".")-1)
如果是这样的话,我应该如何使它适应我的原始代码,我应该把它放在哪里?是否也可以用激活的图纸参数替换图纸1?如何替换

多谢各位

 flNAME = Left(Cells(1, 1).Value,Len(Cells(1, 1).Value)-4)
这将获取所指示单元格的值,并修剪最后一个字符。显然,如果它不是一个带有三个字母扩展名的点,您将有额外的字符。例如,.XLSX将离开圆点

代码将假定您指的是活动工作表的单元格。如果要从其他工作表获取数据,则需要添加代码以选择新工作表

我不确定您试图使用什么,如果是这样的话,很难说您在代码中的什么地方需要它。

我要解决的问题就是这样

Else
        sStr = InStr(varDirectory, ".txt")
        Cells(i + 2, 2) = Left(varDirectory, sStr - 1)

我应该把这三行代码放在哪里@mrbungle@AHC用这只眼睛代替你的眼睛,谢谢。然而,我不得不添加varDirectory=Dirv和i=i+1以避免无限的结果,从而激活循环。是的,我假设这部分是给定的,我想我应该说替换前两行:很高兴它工作了。顺便问一下,我想在指定的范围B3:B82中重复这一点,我应该添加flNAME作为字符串吗?你能再解释一下吗?