程序必须找到某些单元格并插入其他书籍中的偏移数据。错误不会跳出来,并且最初它可以正常工作,但是然后,例如,应该是F(t)= 7,取F(t)= 6。
我找不到错误。也许这就像(调用没有参数的数组函数将返回一个零长度数组。这将有一个有趣的效果LBound将返回0,Ubound将返回-1,即,上限小于下限)
Sub связатьцифирь10()
Dim book1 As Workbook
Dim book2 As Workbook
Dim r As Range
Dim firstAddress As String
Dim n, m, e, t As Long
Dim A
Dim B
Dim D
Dim F
Dim G As String
Dim H As String
'сезон (прошлый,допрошлый,додопрошлый)
A = Array("прошлый", "допрошлый", "додопрошлый")
'страна
D = Array("Англия", "Испания", "Италия", "Германия", "Голландия",
"Франция", "Португалия", "Россия", "Украина")
'место (1,2,3,4,5,6)
B = Array("1", "2", "3", "4", "5", "6")
'номер условия
F = Array("6", "7", "8", "16", "17", "21", "22", "23", "25", "26", "29",
"30", "31", "54", "55", "56", "57", "58", "59")
'Общ п/пр
G = "AP100"
'Общ
H = "AO100"
Set book1 = Workbooks.Open("E:\Super M\Проект ставки\Решение\цифирь.xlsx")
'переходим в активную страницу откуда надо скопировать данные'
'массив условие
For t = 0 To 18
'массив сезон
For n = o To 2
'массив страна
For m = 0 To 8
'массив место
For e = 0 To 5
'пропускаем ошибку
On Error Resume Next
Set book2 = Workbooks.Open("E:\Super M\Проект ставки\Поиск решения\Усов 4\БАЗА ДАННЫХ\" + A(n) + " сезон\" + D(m) + "\" + B(e) + "-ое место\" + F(t) + ".xlsx")
'ищемс
With book1.Worksheets("Лист1").Range("A1:CV808")
Set r = .Find(What:="" + F(t) + "")
If Not r Is Nothing Then
firstAddress = r.Address
Do
'условие для страны
'прошлый сезон
If r.Offset(3, 0).Text = D(m) And A(n) = "прошлый" Then
If B(e) = "1" Then
book2.Worksheets("" + F(t) + "").Range("" + G + "").Copy
r.Offset(6, 5).PasteSpecial xlPasteValues
'копируем вторую ячейку
book2.Worksheets("" + F(t) + "").Range("" + H + "").Copy
r.Offset(6, 6).PasteSpecial xlPasteValues
End If
If B(e) = "2" Then
book2.Worksheets("" + F(t) + "").Range("" + G + "").Copy
r.Offset(7, 5).PasteSpecial xlPasteValues
'копируем вторую ячейку
book2.Worksheets("" + F(t) + "").Range("" + H + "").Copy
r.Offset(7, 6).PasteSpecial xlPasteValues
End If
If B(e) = "3" Then
book2.Worksheets("" + F(t) + "").Range("" + G + "").Copy
r.Offset(8, 5).PasteSpecial xlPasteValues
'копируем вторую ячейку
book2.Worksheets("" + F(t) + "").Range("" + H + "").Copy
r.Offset(8, 6).PasteSpecial xlPasteValues
End If
If B(e) = "4" Then
book2.Worksheets("" + F(t) + "").Range("" + G + "").Copy
r.Offset(9, 5).PasteSpecial xlPasteValues
'копируем вторую ячейку
book2.Worksheets("" + F(t) + "").Range("" + H + "").Copy
r.Offset(9, 6).PasteSpecial xlPasteValues
End If
If B(e) = "5" Then
book2.Worksheets("" + F(t) + "").Range("" + G + "").Copy
r.Offset(10, 5).PasteSpecial xlPasteValues
'копируем вторую ячейку
book2.Worksheets("" + F(t) + "").Range("" + H + "").Copy
r.Offset(10, 6).PasteSpecial xlPasteValues
End If
If B(e) = "6" Then
book2.Worksheets("" + F(t) + "").Range("" + G + "").Copy
r.Offset(11, 5).PasteSpecial xlPasteValues
'копируем вторую ячейку
book2.Worksheets("" + F(t) + "").Range("" + H + "").Copy
r.Offset(11, 6).PasteSpecial xlPasteValues
End If
End If
'допрошлый сезон
If r.Offset(3, 0).Text = D(m) And A(n) = "допрошлый" Then
If B(e) = "1" Then
book2.Worksheets("" + F(t) + "").Range("" + G + "").Copy
r.Offset(6, 3).PasteSpecial xlPasteValues
'копируем вторую ячейку
book2.Worksheets("" + F(t) + "").Range("" + H + "").Copy
r.Offset(6, 4).PasteSpecial xlPasteValues
End If
If B(e) = "2" Then
book2.Worksheets("" + F(t) + "").Range("" + G + "").Copy
r.Offset(7, 3).PasteSpecial xlPasteValues
'копируем вторую ячейку
book2.Worksheets("" + F(t) + "").Range("" + H + "").Copy
r.Offset(7, 4).PasteSpecial xlPasteValues
End If
If B(e) = "3" Then
book2.Worksheets("" + F(t) + "").Range("" + G + "").Copy
r.Offset(8, 3).PasteSpecial xlPasteValues
'копируем вторую ячейку
book2.Worksheets("" + F(t) + "").Range("" + H + "").Copy
r.Offset(8, 4).PasteSpecial xlPasteValues
End If
If B(e) = "4" Then
book2.Worksheets("" + F(t) + "").Range("" + G + "").Copy
r.Offset(9, 3).PasteSpecial xlPasteValues
'копируем вторую ячейку
book2.Worksheets("" + F(t) + "").Range("" + H + "").Copy
r.Offset(9, 4).PasteSpecial xlPasteValues
End If
If B(e) = "5" Then
book2.Worksheets("" + F(t) + "").Range("" + G + "").Copy
r.Offset(10, 3).PasteSpecial xlPasteValues
'копируем вторую ячейку
book2.Worksheets("" + F(t) + "").Range("" + H + "").Copy
r.Offset(10, 4).PasteSpecial xlPasteValues
End If
If B(e) = "6" Then
book2.Worksheets("" + F(t) + "").Range("" + G + "").Copy
r.Offset(11, 3).PasteSpecial xlPasteValues
'копируем вторую ячейку
book2.Worksheets("" + F(t) + "").Range("" + H + "").Copy
r.Offset(11, 4).PasteSpecial xlPasteValues
End If
End If
'додопрошлый сезон
If r.Offset(3, 0).Text = D(m) And A(n) = "додопрошлый" Then
If B(e) = "1" Then
book2.Worksheets("" + F(t) + "").Range("" + G + "").Copy
r.Offset(6, 1).PasteSpecial xlPasteValues
'копируем вторую ячейку
book2.Worksheets("" + F(t) + "").Range("" + H + "").Copy
r.Offset(6, 2).PasteSpecial xlPasteValues
End If
If B(e) = "2" Then
book2.Worksheets("" + F(t) + "").Range("" + G + "").Copy
r.Offset(7, 1).PasteSpecial xlPasteValues
'копируем вторую ячейку
book2.Worksheets("" + F(t) + "").Range("" + H + "").Copy
r.Offset(7, 2).PasteSpecial xlPasteValues
End If
If B(e) = "3" Then
book2.Worksheets("" + F(t) + "").Range("" + G + "").Copy
r.Offset(8, 1).PasteSpecial xlPasteValues
'копируем вторую ячейку
book2.Worksheets("" + F(t) + "").Range("" + H + "").Copy
r.Offset(8, 2).PasteSpecial xlPasteValues
End If
If B(e) = "4" Then
book2.Worksheets("" + F(t) + "").Range("" + G + "").Copy
r.Offset(9, 1).PasteSpecial xlPasteValues
'копируем вторую ячейку
book2.Worksheets("" + F(t) + "").Range("" + H + "").Copy
r.Offset(9, 2).PasteSpecial xlPasteValues
End If
If B(e) = "5" Then
book2.Worksheets("" + F(t) + "").Range("" + G + "").Copy
r.Offset(10, 1).PasteSpecial xlPasteValues
'копируем вторую ячейку
book2.Worksheets("" + F(t) + "").Range("" + H + "").Copy
r.Offset(10, 2).PasteSpecial xlPasteValues
End If
If B(e) = "6" Then
book2.Worksheets("" + F(t) + "").Range("" + G + "").Copy
r.Offset(11, 1).PasteSpecial xlPasteValues
'копируем вторую ячейку
book2.Worksheets("" + F(t) + "").Range("" + H + "").Copy
r.Offset(11, 2).PasteSpecial xlPasteValues
End If
End If
Set r = .FindNext(r)
Loop While Not r Is Nothing And r.Address <> firstAddress
End If
End With
book2.Close
Next e
book1.Save
Next m
Next n
Next t
book1.Save
book1.Close
End Sub