我使用的是两个文件夹,一个用于inuput文件夹,其中所有文件都存在,另一个是输出文件夹,用于保存重命名的文件。
请参阅下面的代码。我正在使用Str()函数来转换数值,但它不起作用。为什么我不知道。此外,我没有得到所需的输出。
我遇到问题,即Str(m)没有工作并显示类型不匹配错误
请帮助.....
Sub ChangeFilename()
IFILEPATH = InputBox("Copy INPUT folder PATH")
OFILEPATH = InputBox("Copy OUTPUT folder PATH")
Dim strfile As String
Dim filenum As String
strfile = Dir(IFILEPATH)
startFile = InputBox("Start File NAME")
endFile = InputBox("End File NAME")
Dim r as Long
r = InputBox("Input INCREAMENT valu")
Do While strfile <> ""
If (strfile = startFile) Then
Do While strfile <= endFile
x = Left(strfile, Len(strfile) - 4)
x = Right(x, Len(x) - 2)
y = Val(x)
If y > 0 Or y < 9 Then
Dim m As Long
m = y + r
Dim k As String
'MsgBox Str(m)
k = Str(m) //This is the area where I am facing problem i.e Str(m) not WORKING and shows type mismatching Error
x = "00" & k
Name IFILEPATH & strfile As OFILEPATH & "eq" & x & ".eps"
ElseIf y >= 9 Or y < 99 Then
m = y + r
x = "0" & k
Name IFILEPATH & strfile As OFILEPATH & "eq" & x & ".eps"
Else
'x = Str(Val(x + r))
Name IFILEPATH & strfile As OFILEPATH & "eq" & x & ".eps"
End If
Loop
End If
strfile = Dir
Loop
End Sub
答案 0 :(得分:0)
我不确定我是否完全按照您要执行的操作,但看起来您并未将r
设置为整数,因此它仅将该值用作字符串。如果你试图让它增加,那么我假设你希望它是一个数值,而不仅仅是文本。
我相信您需要将此维度添加到顶部:
Dim r As Long
另外,我很确定你会想要在其中一个循环中放置这样的东西
r = r + 1
这将使它在每个循环期间递增r
的值。如果您希望增量与用户输入的增量相同,则需要更精细的内容,因为它需要保留原始值或r
。您可以在开头(用户输入之后)使用r2 = r
,这样您就可以使用r2
作为增量(这将是原始的r
值)。然后你可以使用:
r = r + r2
不要忘记在开头标注r2
:
Dim r2 As Long