0

我正在使用两个文件夹,一个是所有文件都存在的输入文件夹,另一个是要保存重命名文件的输出文件夹。

请参阅下面的代码。我正在使用 Str() 函数来转换数值,但它不起作用。为什么我不知道。我也没有得到所需的输出。

我面临问题,即 Str(m) not WORKING 并显示类型不匹配错误

请帮忙.....

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
4

1 回答 1

0

我不确定我是否完全按照您要执行的操作,但看起来您并未将 设置r为整数,因此它仅将值用作字符串。如果您想让它增加,那么我假设您希望它是一个数值,而不仅仅是文本。

我相信您需要将此维度添加到顶部:

Dim r As Long

另外,我很确定你会想要在其中一个循环中放置这样的东西

r = r + 1

这将使它r在每个循环期间增加 的值。如果您希望增量与用户输入的值相同,则需要更详细一些,因为它需要保持原始值或r. 您可以r2 = r在开头使用(在用户输入之后),以便您可以将r2其用作增量(这将是原始r值)。然后你可以使用:

r = r + r2

不要忘记r2在开头标注尺寸:

Dim r2 As Long
于 2012-12-29T23:59:26.020 回答