скрипт открывает все файлы ексель по очереди и там выполняет скрипт qqq. масое главное, то что если применить скрипт qqq отдельно то все работает. а если применить вместе два скрипта, то скрипт не выполняет нужные действия.
[vba]
Код
Private Sub CommandButton1_Click()
Dim FSO As Object Dim TheFolder As Object, TheFiles As Object, AFile As Object Stop 'MyPath = "c:\1111\""" Application.ScreenUpdating = False 'Set wb = Workbooks.Add(template:=xlWorksheet) Set FSO = CreateObject("Scripting.FileSystemObject") Set TheFolder = FSO.GetFolder("C:\1111\") 'Каталог, откуда суммировать Set TheFiles = TheFolder.Files
For Each AFile In TheFiles If UCase(FSO.GetExtensionName(AFile.Path)) = "XLS" Then Set xls = Workbooks.Open(Filename:=AFile, ReadOnly:=False)
ActiveWorkbook.Save ActiveWorkbook.Close True Next
MsgBox "Виконано"
End Sub
Sub qqq()
' Макрос1 Макрос ' Макрос записан 17.09.2013 (Администратор) '
' a - первое значение имени, Б- второе значение имени ' Set wsh = Workbooks.Worksheets(1) Dim a, b As String Dim n, m As Integer Dim sum As Currency
'Stop
With ActiveSheet n = 1 m = 1 a = .Cells(n, 1) Do While (.Cells(n, 1) <> vbNullString) sum = 0 Do If .Cells(n, 2) = "ЕСВ ФОТ (работники)" Then sum = sum + .Cells(n, 3) n = n + 1 b = .Cells(n, 1)
Loop Until (a <> b) If sum <> 0 Then .Cells(m, 4) = a .Cells(m, 5) = sum m = m + 1 End If a = b
Loop End With
End Sub
[/vba]
скрипт открывает все файлы ексель по очереди и там выполняет скрипт qqq. масое главное, то что если применить скрипт qqq отдельно то все работает. а если применить вместе два скрипта, то скрипт не выполняет нужные действия.
[vba]
Код
Private Sub CommandButton1_Click()
Dim FSO As Object Dim TheFolder As Object, TheFiles As Object, AFile As Object Stop 'MyPath = "c:\1111\""" Application.ScreenUpdating = False 'Set wb = Workbooks.Add(template:=xlWorksheet) Set FSO = CreateObject("Scripting.FileSystemObject") Set TheFolder = FSO.GetFolder("C:\1111\") 'Каталог, откуда суммировать Set TheFiles = TheFolder.Files
For Each AFile In TheFiles If UCase(FSO.GetExtensionName(AFile.Path)) = "XLS" Then Set xls = Workbooks.Open(Filename:=AFile, ReadOnly:=False)
ActiveWorkbook.Save ActiveWorkbook.Close True Next
MsgBox "Виконано"
End Sub
Sub qqq()
' Макрос1 Макрос ' Макрос записан 17.09.2013 (Администратор) '
' a - первое значение имени, Б- второе значение имени ' Set wsh = Workbooks.Worksheets(1) Dim a, b As String Dim n, m As Integer Dim sum As Currency
'Stop
With ActiveSheet n = 1 m = 1 a = .Cells(n, 1) Do While (.Cells(n, 1) <> vbNullString) sum = 0 Do If .Cells(n, 2) = "ЕСВ ФОТ (работники)" Then sum = sum + .Cells(n, 3) n = n + 1 b = .Cells(n, 1)
Loop Until (a <> b) If sum <> 0 Then .Cells(m, 4) = a .Cells(m, 5) = sum m = m + 1 End If a = b
Не вникая в суть вычислений: 1. Где располагаются коды Ваших процедур? 2. Переменная xls в процедуре Private Sub CommandButton1_Click не определена. 3. Stop Вам в её начале не мешает? 4. Где должно идти накопление результата? 5. Открывая в цикле файл, Вы уверены, что в нём будет активна нужная страница? Если нет, то не используйте ActiveSheet, а указывайте имя нужной страницы. 6. … Выложите в конце-концов пример: пару файлов, из которых Вы хотите собирать данные и файл, в котором они будут накапливаться. И сделайте пояснения, что хотите получить.
Не вникая в суть вычислений: 1. Где располагаются коды Ваших процедур? 2. Переменная xls в процедуре Private Sub CommandButton1_Click не определена. 3. Stop Вам в её начале не мешает? 4. Где должно идти накопление результата? 5. Открывая в цикле файл, Вы уверены, что в нём будет активна нужная страница? Если нет, то не используйте ActiveSheet, а указывайте имя нужной страницы. 6. … Выложите в конце-концов пример: пару файлов, из которых Вы хотите собирать данные и файл, в котором они будут накапливаться. И сделайте пояснения, что хотите получить.Alex_ST
С уважением, Алексей MS Excel 2003 - the best!!!
Сообщение отредактировал Alex_ST - Четверг, 19.09.2013, 18:05
Я-то думал, что нЕкому помочь, раз никто не откликается на вопрос. Ну и ладно, тогда забудем. Тем более, что свободное время у меня всё равно уже закончилось (закрыл больничный лист, завтра на работу, а там СТОЛЬКО всего навалили!!!)
Я-то думал, что нЕкому помочь, раз никто не откликается на вопрос. Ну и ладно, тогда забудем. Тем более, что свободное время у меня всё равно уже закончилось (закрыл больничный лист, завтра на работу, а там СТОЛЬКО всего навалили!!!)Alex_ST
[offtop]Привет, Серёга! Давно не общались - бешеный завал на работе уже больше полугода. На форумы только иногда удаётся заглянуть одним глазком, а самому что-нибудь писануть - нет.[/offtop]
[offtop]Привет, Серёга! Давно не общались - бешеный завал на работе уже больше полугода. На форумы только иногда удаётся заглянуть одним глазком, а самому что-нибудь писануть - нет.[/offtop]Alex_ST