不带文件扩展名的excel vba文件名提取
我有下面的excel vba代码从文件夹中获取txt文件并将其放入excel不带文件扩展名的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 =
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作为字符串吗?你能再解释一下吗?