Прошу помощи есть две таблицы на одном листе на первой таблицы выставляется расписание а вторая база с которой берутся данные для расписания, требуется сменить источник данных с другого листа, но так как код писал ГЕНИЙ то я ни хрена там не понял и походу куда только не писал ни кто не может. но не ужели код работает только на одном листе. если кто сможет помогите! Хотя бы в крайнем случаи расписать что куда а то набор букв в коде вообще не могу понять.
[vba]
Код
Sub Schedule() Dim t, r&, rw&, m, p, a, c&, s&, i& m = [d1]: p = [d2]: If IsEmpty(m) Or IsEmpty(p) Then Exit Sub t = [L1].CurrentRegion: [b5:f29].ClearContents For r = 2 To UBound(t) If t(r, 1) = m And t(r, 2) = p Then If t(r, 5) Like "Полная*" Then c = 1: s = 1 Else c = 2: s = 2 If t(r, 5) Like "Три*" Then c = 1 rw = Round((t(r, 4) - 1 / 3) * 48, 0) + 5 a = Cells(rw, 2).Resize(1, 5) For i = c To 5 Step s: a(1, i) = t(r, 3): Next Cells(rw, 2).Resize(1, 5) = a End If Nex End Sub
[/vba]
Прошу помощи есть две таблицы на одном листе на первой таблицы выставляется расписание а вторая база с которой берутся данные для расписания, требуется сменить источник данных с другого листа, но так как код писал ГЕНИЙ то я ни хрена там не понял и походу куда только не писал ни кто не может. но не ужели код работает только на одном листе. если кто сможет помогите! Хотя бы в крайнем случаи расписать что куда а то набор букв в коде вообще не могу понять.
[vba]
Код
Sub Schedule() Dim t, r&, rw&, m, p, a, c&, s&, i& m = [d1]: p = [d2]: If IsEmpty(m) Or IsEmpty(p) Then Exit Sub t = [L1].CurrentRegion: [b5:f29].ClearContents For r = 2 To UBound(t) If t(r, 1) = m And t(r, 2) = p Then If t(r, 5) Like "Полная*" Then c = 1: s = 1 Else c = 2: s = 2 If t(r, 5) Like "Три*" Then c = 1 rw = Round((t(r, 4) - 1 / 3) * 48, 0) + 5 a = Cells(rw, 2).Resize(1, 5) For i = c To 5 Step s: a(1, i) = t(r, 3): Next Cells(rw, 2).Resize(1, 5) = a End If Nex End Sub
Sub Schedule() Dim t, r&, rw&, m, p, a, c&, s&, i& Dim otbl As ListObject m = [d1]: p = [d2]: If IsEmpty(m) Or IsEmpty(p) Then Exit Sub Set otbl = Sheets("База").ListObjects("База_tb") t = otbl.DataBodyRange: [b5:f29].ClearContents For r = 1 To UBound(t) If t(r, 1) = m And t(r, 3) = p Then If t(r, 5) Like "Полная*" Then c = 1: s = 1 Else c = 2: s = 2 If t(r, 5) Like "Три*" Then c = 1 rw = Round((t(r, 6) - 1 / 3) * 48, 0) + 5 a = Cells(rw, 2).Resize(1, 5) For i = c To 5 Step s: a(1, i) = t(r, 2): Next Cells(rw, 2).Resize(1, 5) = a End If Next End Sub
[/vba]
Если правильно поняла [vba]
Код
Sub Schedule() Dim t, r&, rw&, m, p, a, c&, s&, i& Dim otbl As ListObject m = [d1]: p = [d2]: If IsEmpty(m) Or IsEmpty(p) Then Exit Sub Set otbl = Sheets("База").ListObjects("База_tb") t = otbl.DataBodyRange: [b5:f29].ClearContents For r = 1 To UBound(t) If t(r, 1) = m And t(r, 3) = p Then If t(r, 5) Like "Полная*" Then c = 1: s = 1 Else c = 2: s = 2 If t(r, 5) Like "Три*" Then c = 1 rw = Round((t(r, 6) - 1 / 3) * 48, 0) + 5 a = Cells(rw, 2).Resize(1, 5) For i = c To 5 Step s: a(1, i) = t(r, 2): Next Cells(rw, 2).Resize(1, 5) = a End If Next End Sub