Цитата pva:
покажи код (и место ошибки), авось разгадаем »
|
Имхо, от кода не зависит (по крайней мере я не понимаю, если бы в коде было что-то не то, то на исходном компе тоже бы не работало, не может же что-то в коде теряться при простом копировании файла?):
Например, лист vvod (данных) - высвечивается код(по событию Worksheet SelectionChange):
----------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
'считаем кол-во ТК
a = 0
For i = 1 To 70
If Worksheets("Base").Cells(i, 7) = "" Then Exit For
a = a + 1
Next i
VsegoTK = a + 1
' вырезаем из основания номер и дату заказа, название ТК
a = 1
S = Trim(Worksheets("Ввод данных").Range("A8"))
For i = 1 To Len(S) - 1
If Mid(S, a, 2) = " " Then S = Left(S, a) + Mid(S, a + 2, Len(S) - a) Else a = a + 1
Next i
и т.д.
----------------------------------------------
желтая стрелка указывает на Private Sub ... и подсвечено "a =" в первом операторе.
Или лист Sopr (Сопроводительный лист) - высвечивается код(по событию Worksheet SelectionChange):
--------------------------------
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
TekPos = 15 'текущая позиция таблицы
KolEkzempl = 3 'кол-во экземпляров каждого паллета
TekPal = 1 'текущий паллет
'считаем кол-во паллет и коробок
VsegoPal = 1
VsegoKor = 0
For i = 9 To 200
If Worksheets("Упаковочный лист для склада").Cells(i, 1) = "" Then Exit For
VsegoKor = VsegoKor + 1
If Worksheets("Упаковочный лист для склада").Cells(i, 6) > VsegoPal Then VsegoPal = Worksheets("Упаковочный лист для склада").Cells(i, 6)
Next i
With Worksheets("Сопроводительный лист").Cells
.ClearContents
.Borders.LineStyle = 0
.Font.Name = "Arial"
.Font.Size = 10
End With
For p = 1 To VsegoPal 'цикл рисования каждого паллета
For t = 1 To KolEkzempl
Worksheets("Сопроводительный лист").Range(Cells(TekPos - 11, 1), Cells(TekPos - 1, 6)).Font.Bold = True
Worksheets("Сопроводительный лист").Range(Cells(TekPos - 11, 1), Cells(TekPos - 3, 6)).Font.Size = 12
Worksheets("Сопроводительный лист").Cells(TekPos - 14, 1) = "Приложение №2 к 'Требованиям к комплектации и документации при осуществлении поставок на"
Worksheets("Сопроводительный лист").Cells(TekPos - 13, 1) = "все собственные и наемные РЦ " & Worksheets("Base").Cells(2, 21) & " всех групп товаров'"
Worksheets("Сопроводительный лист").Cells(TekPos - 11, 2) = "ИНФОРМАЦИОННЫЙ ЛИСТ ПАЛЛЕТА №"
Worksheets("Сопроводительный лист").Cells(TekPos - 11, 5) = TekPal
Worksheets("Сопроводительный лист").Cells(TekPos - 9, 1) = "Поставщик №:"
Worksheets("Сопроводительный лист").Cells(TekPos - 9, 3) = Worksheets("Base").Cells(1, 22)
Worksheets("Сопроводительный лист").Cells(TekPos - 8, 1) = "Наименование поставщика:"
Worksheets("Сопроводительный лист").Cells(TekPos - 8, 3) = Worksheets("Base").Cells(1, 21)
Worksheets("Сопроводительный лист").Cells(TekPos - 7, 1) = "Заказ №:"
If Worksheets("Ввод данных").Range("K11") = "" Then Worksheets("Сопроводительный лист").Cells(TekPos - 7, 3) = Worksheets("Ввод данных").Range("J11") Else Worksheets("Сопроводительный лист").Cells(TekPos - 7, 3) = Worksheets("Ввод данных").Range("K11")
Worksheets("Сопроводительный лист").Cells(TekPos - 6, 1) = "№ магазина " & Worksheets("Base").Cells(2, 21) & " (№ РЦ):"
Worksheets("Сопроводительный лист").Cells(TekPos - 6, 3) = Worksheets(1).Range("J9")
Worksheets("Сопроводительный лист").Cells(TekPos - 6, 4) = "(" & Worksheets(1).Range("J8") & ")"
Worksheets("Сопроводительный лист").Cells(TekPos - 5, 1) = "Плановая дата поставки:"
If Worksheets("Ввод данных").Range("K12") = "" Then Worksheets("Сопроводительный лист").Cells(TekPos - 5, 3) = Worksheets("Ввод данных").Range("J12") Else Worksheets("Сопроводительный лист").Cells(TekPos - 5, 3) = Worksheets("Ввод данных").Range("K12")
Worksheets("Сопроводительный лист").Cells(TekPos - 2, 1) = "SAP"
Worksheets("Сопроводительный лист").Cells(TekPos - 1, 1) = "№ товара"
Worksheets("Сопроводительный лист").Cells(TekPos - 2, 2) = "Наименование товара"
Worksheets("Сопроводительный лист").Cells(TekPos - 2, 3) = "кол-во кор."
Worksheets("Сопроводительный лист").Cells(TekPos - 2, 4) = "кол-во шт."
Worksheets("Сопроводительный лист").Cells(TekPos - 1, 4) = "в кор."
Worksheets("Сопроводительный лист").Cells(TekPos - 2, 5) = "общее"
Worksheets("Сопроводительный лист").Cells(TekPos - 1, 5) = "кол-во шт."
Worksheets("Сопроводительный лист").Cells(TekPos - 2, 6) = "окончание"
Worksheets("Сопроводительный лист").Cells(TekPos - 1, 6) = "срока годн."
Worksheets("Сопроводительный лист").Range(Cells(TekPos, 1), Cells(TekPos + 36, 6)).Borders.LineStyle = 1
Worksheets("Сопроводительный лист").Range(Cells(TekPos - 2, 1), Cells(TekPos - 2, 6)).Borders(xlEdgeTop).LineStyle = 1
Worksheets("Сопроводительный лист").Range(Cells(TekPos - 2, 1), Cells(TekPos - 1, 1)).Borders(xlEdgeLeft).LineStyle = 1
Worksheets("Сопроводительный лист").Range(Cells(TekPos - 2, 2), Cells(TekPos - 1, 2)).Borders(xlEdgeLeft).LineStyle = 1
Worksheets("Сопроводительный лист").Range(Cells(TekPos - 2, 3), Cells(TekPos - 1, 3)).Borders(xlEdgeLeft).LineStyle = 1
Worksheets("Сопроводительный лист").Range(Cells(TekPos - 2, 4), Cells(TekPos - 1, 4)).Borders(xlEdgeLeft).LineStyle = 1
Worksheets("Сопроводительный лист").Range(Cells(TekPos - 2, 5), Cells(TekPos - 1, 5)).Borders(xlEdgeLeft).LineStyle = 1
Worksheets("Сопроводительный лист").Range(Cells(TekPos - 2, 6), Cells(TekPos - 1, 6)).Borders(xlEdgeLeft).LineStyle = 1
Worksheets("Сопроводительный лист").Range(Cells(TekPos - 2, 6), Cells(TekPos - 1, 6)).Borders(xlEdgeRight).LineStyle = 1
b = 0 'позиция в сопроводительном листе
c = 9 'позиция в упаковочном листе
d = 1 'кол-во коробок в позиции
For i = 1 To VsegoKor
dd = 0
If Worksheets("Упаковочный лист для склада").Cells(c, 6) <> TekPal Then c = c + 1
If Worksheets("Упаковочный лист для склада").Cells(c, 6) = TekPal Then
For ii = c To c + VsegoKor - b + 1
If Worksheets("Упаковочный лист для склада").Cells(c, 2) <> Worksheets("Упаковочный лист для склада").Cells(c + 1, 2) Then Exit For
If Worksheets("Упаковочный лист для склада").Cells(c + 1, 6) <> TekPal Then Exit For
If Worksheets("Упаковочный лист для склада").Cells(c, 3) <> Worksheets("Упаковочный лист для склада").Cells(c + 1, 3) Then dd = 1
d = d + 1
c = c + 1
Next ii
a = 0
For ii = 1 To 80
a = a + 1
If Worksheets("Base").Cells(ii, 5) = Worksheets("Упаковочный лист для склада").Cells(c, 2) Then Exit For
Next ii
If dd = 1 Then
Worksheets("Сопроводительный лист").Cells(TekPos + b, 1) = Worksheets("Base").Cells(a, 1) 'штрих-код
Worksheets("Сопроводительный лист").Cells(TekPos + b + 1, 1) = Worksheets("Base").Cells(a, 1) 'штрих-код
Worksheets("Сопроводительный лист").Cells(TekPos + b, 2) = Worksheets("Base").Cells(a, 4) 'артикул
Worksheets("Сопроводительный лист").Cells(TekPos + b + 1, 2) = Worksheets("Base").Cells(a, 4) 'артикул
Worksheets("Сопроводительный лист").Cells(TekPos + b, 3) = d - 1 'кол-во кор
Worksheets("Сопроводительный лист").Cells(TekPos + b + 1, 3) = 1 'кол-во кор
Worksheets("Сопроводительный лист").Cells(TekPos + b, 4) = Worksheets("Упаковочный лист для склада").Cells(c - 1, 3) 'кол-во шт. в кор
Worksheets("Сопроводительный лист").Cells(TekPos + b + 1, 4) = Worksheets("Упаковочный лист для склада").Cells(c, 3) 'кол-во шт. в кор
Worksheets("Сопроводительный лист").Cells(TekPos + b, 5) = Worksheets("Сопроводительный лист").Cells(TekPos + b, 3) * Worksheets("Сопроводительный лист").Cells(TekPos + b, 4) 'общ. кол-во
Worksheets("Сопроводительный лист").Cells(TekPos + b + 1, 5) = Worksheets("Сопроводительный лист").Cells(TekPos + b + 1, 3) * Worksheets("Сопроводительный лист").Cells(TekPos + b + 1, 4) 'общ. кол-во
Worksheets("Сопроводительный лист").Cells(TekPos + b, 6) = "-"
Worksheets("Сопроводительный лист").Cells(TekPos + b + 1, 6) = "-"
b = b + 2
c = c + 1
End If
If dd = 0 Then
Worksheets("Сопроводительный лист").Cells(TekPos + b, 1) = Worksheets("Base").Cells(a, 1) 'штрих-код
Worksheets("Сопроводительный лист").Cells(TekPos + b, 2) = Worksheets("Base").Cells(a, 4) 'артикул
Worksheets("Сопроводительный лист").Cells(TekPos + b, 3) = d
Worksheets("Сопроводительный лист").Cells(TekPos + b, 4) = Worksheets("Упаковочный лист для склада").Cells(c, 3)
Worksheets("Сопроводительный лист").Cells(TekPos + b, 5) = Worksheets("Сопроводительный лист").Cells(TekPos + b, 3) * Worksheets("Сопроводительный лист").Cells(TekPos + b, 4)
Worksheets("Сопроводительный лист").Cells(TekPos + b, 6) = "-"
b = b + 1
c = c + 1
End If
End If
d = 1
Next i
TekPos = TekPos + 51
Next t
TekPal = TekPal + 1
Next p
End Sub
----------------------------------
Опять желтая стрелка указывает на Private Sub ... и подсвечено "TekPos =" в первом операторе.