运行-重命名书籍时出现错误 13

Run-time error 13 in renaming book

有book1,一栏是旧书的名字,另一栏是新书的名字(旧的要改成新的)。 n,m-数字。

发生错误:

Run-time error ‘13’ Type mismatch in line

OldName = "" + n + ".xlsm"

代码:

    Sub Кл()

    Dim OldName, NewName
    Dim book1 As Workbook
    Dim t As Long, m As Long, n As Long


    Application.ScreenUpdating = False
    Application.Calculation = xlCalculationManual
    Application.EnableEvents = False

     Set book1 = Workbooks.Open("E:\Super M\Проект ставки\Поиск решения\Усов 
           7\вспомогательные программы\Книга в лист\виз.xlsx")
     For t = 3 To 5

      n = book1.Worksheets("общ").Range("C" & t).Value
      m = book1.Worksheets("общ").Range("C" & t).Offset(0, 1).Value

      OldName = "" + n + ".xlsm"
      NewName = "" + m + ".xlsm"

      Name OldName As NewName

      OldName = "E:\Super M\Проект ставки\Поиск решения\Усов 
            7\вспомогательные программы\Книга в лист\Отборные 
            условия\Откуда\" + n + ".xlsm"
      NewName = "E:\Super M\Проект ставки\Поиск решения\Усов 
              7\вспомогательные программы\Книга в лист\Отборные 
             условия\Куда\" + m + ".xlsm"

      Name OldName As NewName

      Next t
      book1.Close

      Application.ScreenUpdating = True
      Application.Calculation = xlCalculationAutomatic
      Application.EnableEvents = True

      End Sub

我会尝试 Dim oldName As String,因为您正在处理一个字符串,然后使用 & 来连接,而不是 +

您可以将 n 显式转换为 CStr(n) 而不是让它隐式转换。

开头的 "" + 有什么意义?它不会添加任何东西。只需 Cstr(n) & ".xlsm" 就足够了。

n 必须包含完整的文件路径,因为 Name 函数需要 location 和文件名.

Name statement:

oldpathname Required. String expression that specifies the existing file name and location — may include directory or folder, and drive.

newpathname Required. String expression that specifies the new file name and location — may include directory or folder, and drive. The file name specified by newpathname can't already exist.

我认为 + 应该是 &。该行应显示为

oldname = "path\filename" & n & ".xlsm" 

可能 cstr(n)text(n , "format") 可以做同样的事情