powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите найти ошибку.
8 сообщений из 8, страница 1 из 1
Помогите найти ошибку.
    #35729169
Куаныш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
привет всем!
скажу сразу 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
...
Рейтинг: 0 / 0
Помогите найти ошибку.
    #35730792
Фотография The_Prist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
Do While Workbooks("Филиал").Worksheets("1").Cells(p,  3 ) <>  0 
А Вы здесь указываете имя листа - "1" или индекс листа - 1? Если индекс, то без кавычек.
И "Call" здесь:
Код: plaintext
Call Application.ActiveWorkbook.Save
- явно лишнее
...
Рейтинг: 0 / 0
Помогите найти ошибку.
    #35731398
Куаныш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"1" - это имя листа.
а то, что я сохраняю файл "Филиал" - это не лишнее.
если я ошибаюсь - объясните...

ошибка в этом промежутке:

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

без этого куска вроде все делает, а с ним - остается открытый файл "Филиал" и на этом все заканчивается...
...
Рейтинг: 0 / 0
Помогите найти ошибку.
    #35731401
Куаныш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
возможно FileName - не распознается как Workbook Excel?
...
Рейтинг: 0 / 0
Помогите найти ошибку.
    #35734093
sergeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в алгоритм не вникал, но первое, что бросилось в глаза, переменной n не присваевается начальное значение
...
Рейтинг: 0 / 0
Помогите найти ошибку.
    #35734626
Куаныш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тоже увидел.
присваивал. результатов не дало.
...
Рейтинг: 0 / 0
Помогите найти ошибку.
    #35734645
Куаныш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
в принципе задача стоит собрать и консолидировать данные из многих файлов, которые заполняются многочисленными филиалами. имена файлов уникальны: сХХfNNNNdDD.MM.YYYY.007
...
Рейтинг: 0 / 0
Помогите найти ошибку.
    #35735144
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Гадания на кофейной гуще.

Стоит поинтересоваться, в чем, собственно, траблы.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Помогите найти ошибку.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]