Помогите найти ошибку. - VB

Узнай цену своей работы

Формулировка задачи:

привет всем!
скажу сразу VBA знаю 2-3 дня (сам не программер, а маркетолог). задача: в филиалах посчитать кол-во обращений клиентов. вроде с подсчетом справился, выходные файлы есть (*.xls). проблема: начинаю собирать файлы в кучу, но что-то не так. вроде в цикл входит, файлы берет правильно, коды расшивает, а вот с переносом данных и закрытием файла траблы.
Private Sub CommandButton1_Click()
Dim data As String, kodname As String, filname As String, FullFileName As String, FileName As String, ShortFileName As String, data_o As String
Dim p As Integer, FileCount As Integer
Dim arrFiles As Variant, strFilter As String
Dim strTitle As String, strMsg As String, i As Long
Dim wb As Workbook
' условие для выбора файла и создание массива файлов
data_o = Workbooks("Свод").Worksheets("Свод").Range("G4").Value
FullFileName = "C:\Отчет\Филиал.xls"
ShortFileName = "Филиал.xls"
strFilter = "Файлы отчетов (*.007),*.007"
strTitle = "Выберите файл для обработки"
arrFiles = Application.GetOpenFilename(strFilter, 2, strTitle, , True)
On Error GoTo ExitSub
For i = 1 To UBound(arrFiles)
Set wb = Workbooks.Open(arrFiles(i))
' выбираем из массива по одному файлу и разбираем на коды
FileName = arrFiles(i)
wb.Close
Set wb = Nothing
kodname = Mid(FileName, 11, 2)
filname = Mid(FileName, 14, 4)
data = Mid(FileName, 19, 10)
' проверка отчета по дате
' If data_o = data Then
' и слив данных в общий файл по филиалу
Workbooks.Open (FullFileName)
' находим пустую строку в файле Обращения
p = 1
Do While Workbooks("Филиал").Worksheets("1").Cells(p, 3) <> 0
p = p + 1
Loop
Do While Workbooks(FileName).Worksheets("1").Cells(1 + n, 3) <> 0
Workbooks("Филиал").Worksheets("1").Cells(p + n, 1) = Workbooks(FileName).Worksheets("1").Cells(1 + n, 1)
Workbooks("Филиал").Worksheets("1").Cells(p + n, 2) = Workbooks(FileName).Worksheets("1").Cells(1 + n, 2)
Workbooks("Филиал").Worksheets("1").Cells(p + n, 3) = Workbooks(FileName).Worksheets("1").Cells(1 + n, 3)
n = n + 1
Loop
Workbooks(ShortFileName).Activate
Application.DisplayAlerts = False
Call Application.ActiveWorkbook.Save
Application.DisplayAlerts = True
Workbooks(ShortFileName).Close
' переименовываем обработанный файл
Name FileName As "C:\Отчет\o" + kodname + "-" + filname + "-" + data + ".009"
' End If
Next i
On Error GoTo 0
ExitSub:
End Sub

Решение задачи: «Помогите найти ошибку.»

textual
Листинг программы
<font color="blue">Do</font> <font color="blue">While</font> Workbooks(<font color="teal">"Филиал"</font>).Worksheets(<font color="teal">"1"</font>).Cells(p, <font color="darkblue"><b>3</b></font>) <> <font color="darkblue"><b>0</b></font>

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4.167 из 5