Excel vba에서 아래 코드에 문제가 있습니다. 이전에 줄 rSurname = Range ("A" + numrows).Value
잘 작동하지만 값이 이미 "D : D"범위에 있는지 여부를 코드에 추가했습니다. 이제 런타임 오류 13 메시지가 나타납니다.Excel vba 이전에 작동했던 코드에서 런타임 오류 '13'
할 노력하고있어 것은 : 공간
- 성 (姓)이 5 개 미만의 문자를 갖고 있으면 성이 5 자
- 되어 있는지 확인, 패드, 5 자로 트림
- 4 자리 숫자로 채워진 숫자 접미사 추가 (예 : 0001)의 출력이 이미 존재하고 있지 않은 경우하는 범위로 인쇄되지 않습니다
- 확인 "D : D"
- 값은 고유 한 값
내 코드까지 검사, 증가 접미사를 존재하고 반복 않는 경우
Private Sub TestButton_Click()
Dim rSurname, rOutput, sLength, numrows, sFindString As String
Dim nSuffix As Integer
Dim rRange As Range
Dim iLength As Long
numrows = 1
'Set Cell A2 as first cell range
Range("A2").Select
'Set loop to stop when en empty cell is reached
Do
'Increment numrows
numrows = numrows + 1
'Set Surname value
rSurname = Range("A" + numrows).Value
'Check Surname Letter Count and ensure 5 chars in Surname
iLength = Len(rSurname)
If iLength > 5 Then
rSurname = Left(rSurname, 5)
ElseIf iLength = 4 Then
rSurname = rSurname & " "
ElseIf iLength = 3 Then
rSurname = rSurname & " "
ElseIf iLength = 2 Then
rSurname = rSurname & " "
ElseIf iLength = 1 Then
rSurname = rSurname & " "
Else
rSurname = rSurname
End If
'Set Suffix value
nSuffix = 1
Do
'Combine Surname and suffix
rOutput = rSurname & Format(nSuffix, "0000")
'Check whether Output in list range
sFindString = "rOutput"
If Trim(FindString) <> "" Then
With Sheets("Sheet1").Range("D:D")
Set Rng = .Find(What:=FindString, _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
LookAt:=xlWhole, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:=False)
If Not Rng Is Nothing Then
rOutput = rOutput
Else
nSuffix = nSuffix + 1
End If
End With
End If
Loop
'Add Outputs to Columns
Range("B" + numrows).Value = rSurname
Range("C" + numrows).Value = nSuffix
Range("D" + numrows).Value = rOutput
Loop Until IsEmpty(rSurname)
End Sub
내가 사용하고 데이터 범위는 다음과 같습니다 :은 여기에 훨씬 간단 버전의 내가 이것을 실행하려고했습니다 콕스 쿡 스미스 Holtam 프레이저 스미 스미 스미 – mattnhugh