Все в порядке, пока я не доберусь до петли.Неисправность рабочей книги Excel
Как только я доберусь до петли, он пробежит цикл, изменяя имя и фамилию на два разных столбца, но потом по какой-то причине он дает мне ошибку. Я не могу понять, почему.
код ниже:
Option Explicit
Public Sub BreakNameApart()
'declare variables and assign address to Worksheet object variable
Dim intLocation As Integer, shtConsult As Worksheet, rngCell As Range
Set shtConsult = _
Application.Workbooks("Franklin Consultants.xls").Worksheets("Consultants")
shtConsult.Columns("b").Insert
shtConsult.Range("a4").Value = "Last Name"
shtConsult.Range("b4").Value = "First Name"
shtConsult.Range("a4:b4").Font.Bold = True
'beginning in cell A5, seperate each full name into last and first name
Set rngCell = shtConsult.Range("a5")
Do Until rngCell.Value = ""
'find location of space
intLocation = InStr(1, rngCell.Value, " ")
'assign first name to appropriate cell in column B
rngCell.Offset(columnoffset:=1).Value = _
Left(String:=rngCell.Value, Length:=intLocation - 1)
'assign last name to current cell
rngCell.Value = Mid(String:=rngCell.Value, Start:=intLocation + 1)
'assign the address of the cell in the next row to the rngCell variable
Set rngCell = rngCell.Offset(rowoffset:=1)
Loop
'adjust the width of columns A and B
shtConsult.Columns("a:b").AutoFit
End Sub
В частности это дает мне ошибку здесь:
rngCell.Offset(columnoffset:=1).Value = _
Left(String:=rngCell.Value, Length:=intLocation - 1)
Посмотрите на val ue из 'rngCell', когда возникает ошибка - если в имени нет места, тогда' intLocation' будет 0, а функция 'LEFT' будет пытаться и вернуть -1 символов из' rngCell', вызывая ошибку. Другой возможный вариант: у всех имен есть начальное пространство в начале? –