Вот исходный код:
| Код | nam = ListBox1.Column(0, 0) & TextBox1.Text lc = ListBox1.ListCount ReDim lnew(lc) As String For i = 0 To ListBox1.ListCount - 1 'Заносим в массивы названия листов lnew(i) = ListBox1.Column(0, i) & TextBox2.Text Next i
For i = 0 To ListBox1.ListCount - 1 'Копирование листа и его переименование namei = ListBox1.Column(0, i) & TextBox1.Text namep = ListBox1.Column(0, i) & TextBox2.Text Worksheets(namei).Copy before:=Worksheets(Sheets(nam).Index) Worksheets(namei & " (2)").Name = namep 'Просмотр формул в ячейках на наличие ссылок на копируемые листы и 'замена их на новые For n = 1 To 50 For j = Asc("A") To Asc("Q") form$ = Worksheets(namep).Range(Chr(j) & n).Formula 'Заносим в form формулу из ячейки k = 0 'Зануляем счетчик While (k <= Len(form$)) md = 0 k = k + 1 If (Mid$(form$, k, 1) = "!") Then m = k - 1 If (Mid$(form$, m, 1) = "'") Then num = 1 m = m - 1 Else num = 2 End If news$ = "" 'В переменную заносим имя листа While ((stopr(num, m, form$)) And (m >= 1)) news$ = Mid$(form$, m, 1) + news$ m = m - 1 Wend ind = Look(news$) 'Функция сверяет ссылку со скопир-ми листами, если она совпадает, 'то возвр-ся ее номер, иначе возвр-ся -1 If (ind <> -1) Then md = Len(lnew(ind)) - Len(news$) news$ = Mid$(form$, 1, m) & lnew(ind) & Mid$(form$, k, Len(form$) - k + 1) form$ = news$ End If k = k + md End If Wend If (Worksheets(namep).Range(Chr(j) & n).Formula <> form$) Then Worksheets(namep).Range(Chr(j) & n).Activate ActiveCell.Formula = form$ End If Next j Next n Next i
|
Не присваивает! |