Top.Mail.Ru
Ответы

Макросы Excel помогите, пожалуйста, найти ошибку

Здравствуйте, у меня есть макрос преобразовывающий карточку 51 счета в реестр, но Excel выдает ошибку
Sub RegMake()
Dim SheetIn, SheetOut As Worksheet
Dim S, S1, A1, A2, A3, B1, B2, B3, C1, C2, C3 As String
Dim K, BrakePos, BrakePos1, BrakePos2 As Integer
Set SheetIn = ActiveWorkbook.Worksheets("Карточка 51 счёта")
Set SheetOut = ActiveWorkbook.Worksheets("Реестр операций")
SheetOut.Range("A2:L10000").ClearContents
K = 9
Do While SheetIn.Cells(K, 1).Value <> ""
SheetOut.Cells(K + 1, 1).Value = K - 8
SheetOut.Cells(K + 1, 2).Value = CDate(SheetIn.Cells(K, 1))
SheetOut.Cells(K + 1, 13).Value = Month(CDate(SheetIn.Cells(K, 1)))
If SheetIn.Cells(K, 6).Value = "51" Then
SheetOut.Cells(K + 1, 3).Value = - (-Format(CSng(SheetIn.Cells(K,7).Value), "# ##0.00"))
SheetOut.Cells(K + 1, 10).Value = - (-Format(CSng(SheetIn.Cells(K,7).Value), "# ##0.00"))
Else
SheetOut.Cells(K + 1, 3).Value =-Format(CSng(SheetIn.Cells(K, 10).Value), "# ##0.00")
SheetOut.Cells(K + 1, 10).Value =-Format(CSng(SheetIn.Cells(K, 10).Value), "# ##0.00")
End If
SheetOut.Cells(K + 1, 4).Value = "Основной"
SheetOut.Cells(K + 1, 11).Value = "RUR"
SheetOut.Cells(K + 1, 9).Value = "Д" & SheetIn.Cells(K, 6). <------ОШИБКУ ВЫДАЕТ ЗДЕСЬ
Value & "К" & SheetIn.Cells(K, 9).Value
A1 = ""
A2 = ""
A3 = ""
B1 = ""
B2 = ""
B3 = ""
C1 = ""
C2 = ""
C3 = ""
S = SheetIn.Cells(K, 2).Value
BrakePos = InStr(S, Chr(10))
If BrakePos <> 0 Then
A1 = Left(S, BrakePos - 1)
A2 = Right(S, Len(S) - BrakePos)
End If
S = SheetIn.Cells(K, 4).Value
BrakePos = InStr(S, Chr(10))
If BrakePos = 0 Then
B1 = S
Else
B1 = Left(S, BrakePos - 1)
S = Right(S, Len(S) - BrakePos)
BrakePos = InStr(S, Chr(10))
If BrakePos = 0 Then
B2 = S
Else
B2 = Left(S, BrakePos - 1)
B3 = Right(S, Len(S) - BrakePos)
End If
End If
S = SheetIn.Cells(K, 5).Value
BrakePos = InStr(S, Chr(10))
If BrakePos = 0 Then
C1 = S
Else
C1 = Left(S, BrakePos - 1)
S = Right(S, Len(S) - BrakePos)
BrakePos = InStr(S, Chr(10))
If BrakePos = 0 Then
C2 = S
Else
C2 = Left(S, BrakePos - 1)
C3 = Right(S, Len(S) - BrakePos)
End If
End If
SheetOut.Cells(K + 1, 8).Value = A2
If SheetIn.Cells(K, 6).Value = "51" Then
SheetOut.Cells(K + 1, 6).Value = B2
SheetOut.Cells(K + 1, 7).Value = C1
Else
SheetOut.Cells(K + 1, 6).Value = C2
SheetOut.Cells(K + 1, 7).Value = B1
End If
K = K + 1
Loop
SheetOut.Rows("2:9").Delete Shift:=xlUp
MsgBox ("Реестр банковских операций сформирован.")
End Sub

Дополнен

Ошибка синтаксическая

По дате
По рейтингу
Аватар пользователя
Оракул
8лет

Ошибка-то какая?