0

2 つのフォルダーを使用しています。1 つはすべてのファイルが存在する入力フォルダー用で、もう 1 つは名前が変更されたファイルが保存される出力フォルダー用です。

コードについては、以下を参照してください。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
4

1 に答える 1

0

あなたがやろうとしていることを正確に守っているかどうかはわかりませんがr、整数として設定したようには見えないため、値を文字列としてのみ使用しています。増加させようとしている場合は、単なるテキストではなく、数値にしたいと思うでしょう。

この次元を一番上に追加する必要があると思います:

Dim r As Long

また、ループの 1 つにこのようなものを配置したいと思うでしょう。

r = r + 1

rこれにより、各ループ中にの値がインクリメントされます。増分をユーザーが入力したものと同じにしたい場合は、元の値またはr. 増分(元の値)としてr2 = r使用できるように、最初(ユーザー入力の後)に向かって使用できます。次に、次を使用できます。r2r

r = r + r2

r2最初に の寸法を記入することを忘れないでください。

Dim r2 As Long
于 2012-12-29T23:59:26.020 に答える