|
|
|
как скрыть открывании окон (файлов) в макросе при копировании данных из них
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, уважаемые форумчане, подскажите пожалуйста, как можно решить следующий вопрос, написан макрос, он на отдельный лист (отчет) вставляет ячейки путем открывания и закрывания файлов и копирования из них данных. То есть, если файлов 100 штук, то на компьютере пользователя поочереди открываются 100 окон и он видит постоянное моргание окон, можно ли как-то скрыть открывание окон скрыть от пользователя? вот макрос Sub ShowFolderList(folderspec) Dim fs, f, f1, fc, s, sh Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.GetFolder(folderspec) Set fc = f.Files Regim = Worksheets("Serv").Cells(1, 5).Value Worksheets("Report").Range("A5:AA300").Select ' Range("AA34").Activate Selection.ClearContents i = 4 For Each f1 In fc s = "" s = s & folderspec & "\" s = s & f1.Name Workbooks.Open Filename:=s, ReadOnly:=True, editable:=False WName = ActiveWorkbook.Name incl = Worksheets("Serv").Cells(1, 5).Value If incl = Regim Then i = i + 1 Sheets("Problem").Select Range("A2:R2").Select Selection.Copy Windows("Claims_Report.xls").Activate Field = "A" & i Sheets(1).Range(Field).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Cells(i, 19).Value = s End If ' Workbooks(WName).Close Workbooks(WName).Close False Next End Sub Заранее спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2012, 10:10 |
|
||
|
как скрыть открывании окон (файлов) в макросе при копировании данных из них
|
|||
|---|---|---|---|
|
#18+
Код: vbnet 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2012, 13:43 |
|
||
|
как скрыть открывании окон (файлов) в макросе при копировании данных из них
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro Код: vbnet 1. Скажите пожалуйста, в какое именно место эту команду вставить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2012, 14:15 |
|
||
|
как скрыть открывании окон (файлов) в макросе при копировании данных из них
|
|||
|---|---|---|---|
|
#18+
Неужели из простого перевода с английского неясно, что она запрещает обновление экрана? Соответственно, вставить в то место, где требуется запретить обновление экрана. И не забыть в конце разрешить обновление экрана. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2012, 14:23 |
|
||
|
как скрыть открывании окон (файлов) в макросе при копировании данных из них
|
|||
|---|---|---|---|
|
#18+
martinezoShocker.Pro Код: vbnet 1. Скажите пожалуйста, в какое именно место эту команду вставить? вставил сюда: Sub ShowFolderList(folderspec) Dim fs, f, f1, fc, s, sh Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.GetFolder(folderspec) Set fc = f.Files Regim = Worksheets("Serv").Cells(1, 5).Value Worksheets("Report").Range("A5:AA300").Select ' Range("AA34").Activate Selection.ClearContents i = 4 For Each f1 In fc s = "" s = s & folderspec & "\" s = s & f1.Name Workbooks.Open Filename:=s, ReadOnly:=True, editable:=False Application.ScreenUpdating = False WName = ActiveWorkbook.Name incl = Worksheets("Serv").Cells(1, 5).Value If incl = Regim Then i = i + 1 Sheets("Problem").Select Range("A4:R4").Select Selection.Copy Windows("Claims_Report.xls").Activate Field = "A" & i Sheets(1).Range(Field).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Cells(i, 19).Value = s End If ' Workbooks(WName).Close 'Application.DisplayAlerts = False Workbooks(WName).Close False Next End Sub вроде как работает, но потом выходит такая ошибка: Прекращена работа файла майкрософт ексель - Перезапустить программу, и программа вылетает (см. скрин) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2012, 14:31 |
|
||
|
как скрыть открывании окон (файлов) в макросе при копировании данных из них
|
|||
|---|---|---|---|
|
#18+
э-эх, плохо все... Код: vbnet 1. в конце надо А еще уже пора бы научиться пользоваться тэгами оформления кода ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2012, 15:20 |
|
||
|
как скрыть открывании окон (файлов) в макросе при копировании данных из них
|
|||
|---|---|---|---|
|
#18+
Shocker.Proэ-эх, плохо все... Код: vbnet 1. в конце надо А еще уже пора бы научиться пользоваться тэгами оформления кода сделал как Вы сказали, (вот макрос): Sub ShowFolderList(folderspec) Dim fs, f, f1, fc, s, sh Set fs = CreateObject("Scripting.FileSystemObject") Set f = fs.GetFolder(folderspec) Set fc = f.Files Regim = Worksheets("Serv").Cells(1, 5).Value Worksheets("Report").Range("A5:AA300").Select ' Range("AA34").Activate Selection.ClearContents i = 4 For Each f1 In fc s = "" s = s & folderspec & "\" s = s & f1.Name Workbooks.Open Filename:=s, ReadOnly:=True, editable:=False Application.ScreenUpdating = False WName = ActiveWorkbook.Name incl = Worksheets("Serv").Cells(1, 5).Value If incl = Regim Then i = i + 1 Sheets("Problem").Select Range("A2:R2").Select Selection.Copy Windows("Claims_Report.xls").Activate Field = "A" & i Sheets(1).Range(Field).Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Cells(i, 19).Value = s End If Workbooks(WName).Close False Next Application.DisplayAlerts = True End Sub после этого все равно вылетает ексель, выходит ошибка Прекращена работа файла майкрософт ексель - Перезапустить программу, и программа вылетает (см. скрин) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2012, 16:56 |
|
||
|
как скрыть открывании окон (файлов) в макросе при копировании данных из них
|
|||
|---|---|---|---|
|
#18+
товарищи, может кто-то знает как решить вопрос того, что вылетает "Эксель" Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2012, 17:14 |
|
||
|
как скрыть открывании окон (файлов) в макросе при копировании данных из них
|
|||
|---|---|---|---|
|
#18+
martinezoтоварищи, может кто-то знает как решить вопрос того, что вылетает "Эксель" Спасибо. Может он сам по себе вылетает, из-за каких-то проблем компьютера, на кот-м он установлен? Может системный администратор какие-то танцы с маркларами станцует? У меня, к примеру, сегодня несколько раз при выполнении 1-го и того же макроса в 2007-м Экселе что-то подобное вылезало. Вчера и позавчера (на аналогичных макросах) ничего такого не было ни разу. А сегодня 5 раз подряд. Думал, память утекает как собака, т.к. использовал кривую MS технологию. Перегрузил комп - опять примерно то же самое, что и у вас. Но в следующий раз макрос отработал (наконец-то) корректно. ЗЫ А новый экземпляр Экселя создать и ему Visible:=False не вариант? ----- Не люблю Progress OpenEdge. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2012, 19:07 |
|
||
|
|

start [/forum/topic.php?fid=61&msg=37729480&tid=2175849]: |
0ms |
get settings: |
9ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
29ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
29ms |
get tp. blocked users: |
1ms |
| others: | 276ms |
| total: | 366ms |

| 0 / 0 |
