运行-重命名书籍时出现错误 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 和文件名.
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")
可以做同样的事情
有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 和文件名.
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")
可以做同样的事情