Имя: Пароль:
1C
 
как через OLE колонку добавить в таблице Excel?
0 gr13
 
21.01.09
11:06
сабж
1 rie
 
21.01.09
11:19
(0) А что значит - "добавить колонку" для таблицы Excel?
Вставить новую колонку перед некоторой со сдвигом всех следующих колонок вправо? Если да - то что-то вроде

Лист.Rows("C:C").Insert(-4161,0);

(переменной Лист, естественно, присвоен обрабатываемый лист книги Excel).
2 gr13
 
21.01.09
11:23
(1) да, пасип счас попробую
3 gr13
 
21.01.09
11:23
row это разве не строка?
4 rie
 
21.01.09
11:26
(3) Да, конечно же, строка. Columns, естественно.
5 gr13
 
21.01.09
11:27
Лист.Columns("C:C").Insert(-4161,0);  ?
а что означает -4161, 0?
6 Сергей-ХХХ
 
21.01.09
11:28
Наверное константа какая-нить, означающая "сдвинуть по-горизонтали"
7 rie
 
21.01.09
11:31
(5) значение константы xlShiftToRight.
8 gr13
 
21.01.09
11:33
(7) понял, 0 это количество колонок добавляемых?
9 rie
 
21.01.09
11:38
(8) Нет, это флаг копирования.
10 gr13
 
21.01.09
11:41
а как можно, скажем скопировать колонку А в колонку D?
11 rie
 
21.01.09
11:43
(11) Copy, а затем Paste (это названия методов).
Чтобы не мучиться - лучше открой Excel, включи запись макросов, сделай всё, что тебе надо, а потом посмотри текст получившегося макроса. С названиями всех нужных методов.
12 gr13
 
21.01.09
12:03
счас попробую. я никогда так не делал(
13 vde69
 
21.01.09
12:04
лист должен быть активным!!!
14 gr13
 
21.01.09
12:06
гы))))
спасибо)

Columns("B:B").Select
Selection.Insert Shift:=xlToRight
Selection.Insert Shift:=xlToRight
Range("B5").Select
ActiveCell.FormulaR1C1 = "1"
Range("B6").Select
ActiveCell.FormulaR1C1 = "2"
Range("B7").Select
ActiveCell.FormulaR1C1 = "3"
Columns("B:B").Select
Selection.Copy
Columns("J:J").Select
ActiveSheet.Paste
15 rie
 
21.01.09
12:06
(12) Только имей в виду - в макросах Excel параметры со значениями по умолчанию, как правило, не указываются. К тому же из-за наличия именованных параметров порядок может различаться. 1C же такого не умеет.
Поэтому на всякий случай проверяй по "Справке по Visual Basic", какие же параметры и с какими значениями требуются.
16 gr13
 
21.01.09
12:07
(15) спасибо за идею - счас будем думать

вот здесь я так понимаю нада
Selection.Insert Shift:=xlToRight
xlToRight заменить на -4161
17 rie
 
21.01.09
12:08
(14) Не забывай указывать лист в начале.
И вместо

Range("B6).Select
ActiveCell.FormulaR1C1 = "1"

лучше сразу писать

Лист.Cells(2,6).Value = 1;
18 vde69
 
21.01.09
12:08
я сейчас вот с такой контрукцией сексом занимаюсь

   Set OldSheet = Application.Worksheets(SheetName)
   i = OldSheet.Shapes.Count
   OldSheet.OLEObjects.Add(Filename:=File_Name, Link:=False, DisplayAsIcon:=False).Select
   
   If OldSheet.Cells.SpecialCells(11).Row >= Selection.Object.ActiveSheet.Cells.SpecialCells(11).Row Then
       i1 = OldSheet.Cells.SpecialCells(11).Row
   Else
       i1 = Selection.Object.ActiveSheet.Cells.SpecialCells(11).Row
   End If
   Selection.Object.ActiveSheet.Range("1:" & i1).Copy Destination:=OldSheet.Range("1:" & i1)
   OldSheet.Shapes(i + 1).Delete
19 rie
 
21.01.09
12:08
(16) Значения констант можешь посмотреть в редакторе VB по кнопке F2
20 gr13
 
21.01.09
12:10
(17) угу, это я где-то видел. я для копирования добавил цифры
21 gr13
 
21.01.09
12:10
(19) спасибо
22 rie
 
21.01.09
12:11
(18) А что в этой конструкции особо сексуального? :-)
23 gr13
 
21.01.09
12:11
(19) Const xlToRight = -4161 (&HFFFFEFBF)
24 skunk
 
21.01.09
12:12
(21)незнал что ли?
25 gr13
 
21.01.09
12:13
xlToRight = -4161;

ФайлExcel = ПолучитьCOMОбъект(ИмяФайла);
ФайлExcel.Worksheets(1).Activate();
КонечнаяСтрока = ФайлExcel.ActiveSheet.Cells.SpecialCells(11).Row;

Выделение = ФайлExcel.Worksheets(1).Columns("B:B").Select;
Выделение.Insert Shift:=xlToRight;

последняя строка не пройдет, а как правильно?
26 gr13
 
21.01.09
12:13
(24) нет, где твоя книга?
27 skunk
 
21.01.09
12:15
(22)то ... что первым парметром идет у метода Add объекта OLEObjects идет ClassType ...

короче незнает того, о чем ты говорил в (15)
28 skunk
 
21.01.09
12:15
(26)плюнул
29 gr13
 
21.01.09
12:16
(28) дай то что уже готово... я погляжу
30 rie
 
21.01.09
12:16
(25) У Insert - _два_ параметра!
31 gr13
 
21.01.09
12:16
мож опубликую... если будет время, а то я спортом занялся и английским( 1 выходной день в неделю
32 gr13
 
21.01.09
12:17
(30) Выделение.Insert.Shift:=xlToRight;
так7
33 rie
 
21.01.09
12:18
(31) Да нет же!

Выделение.Insert(-4161,0);
34 gr13
 
21.01.09
12:19
(33) блин, аа пасип - век живи век учись
35 skunk
 
21.01.09
12:22
(34)а ничего не осталось ... винт навернулся... что было опубликованно восстановил, всему остальному трындец пришел... впринципе поэтому и плюнул
36 gr13
 
21.01.09
12:26
ФайлExcel = ПолучитьCOMОбъект(ИмяФайла);
ФайлExcel.Worksheets(1).Activate();
КонечнаяСтрока = ФайлExcel.ActiveSheet.Cells.SpecialCells(11).Row;

ВыделениеB = ФайлExcel.Worksheets(1).Columns("B:B").Select;
ВыделениеB.Insert(xlToRight, 0);
   
ВыделениеB.Insert(xlToRight, 0);
   
ВыделениеA = ФайлExcel.Worksheets(1).Columns("A:A").Select;
КопированиеКолонкиA = ВыделениеA.Copy;
   
ВыделениеL = ФайлExcel.Worksheets(1).Columns("L:L").Select;
ФайлExcel.Paste;


блин( 1с на последней строке ругается
37 skunk
 
21.01.09
12:27
Paste - это метод ... Paste()
38 gr13
 
21.01.09
12:32
ФайлExcel.Worksheets(1).Columns("B:B").Select    {(1)}: Поле объекта не обнаружено (Select)

(((
39 skunk
 
21.01.09
12:36
Select() ... тоже метод
40 skunk
 
21.01.09
12:36
Copy() - тоже метод
41 rie
 
21.01.09
12:37
(38) В 1С после имени метода _обязательно_ должны быть скобки. Даже если параметров нет.
42 gr13
 
21.01.09
12:43
Select() ошибку выдает
(40) не знаю
43 rie
 
21.01.09
12:48
(42)Что-то ты загадочное делаешь...
Select(), если мне память не изменяет, ничего не возвращает. (Хотя могу и ошибаться).
Выделенный с помощью Select диапазон доступен через свойство Selection.
44 gr13
 
21.01.09
12:52
(43)
вот один к одному

ФайлExcel = ПолучитьCOMОбъект(ИмяФайла);
   ФайлExcel.Worksheets(1).Activate();
   КонечнаяСтрока = ФайлExcel.ActiveSheet.Cells.SpecialCells(11).Row;
   
   ВыделениеB = ФайлExcel.Worksheets(1).Columns("B:B").Select;
   ВыделениеB.Insert(xlToRight, 0);
   
   ВыделениеB.Insert(xlToRight, 0);
   
   ВыделениеA = ФайлExcel.Worksheets(1).Columns("A:A").Select;
   КопированиеКолонкиA = ВыделениеA.Copy;
   
   ВыделениеL = ФайлExcel.Worksheets(1).Columns("L:L").Select;
   ФайлExcel.Paste();
   
   ФайлExcel.Save();
45 gr13
 
21.01.09
12:53
ФайлExcel.Worksheets(1).Columns("B:B").Select()    {(1)}: Ошибка при вызове метода контекста (Select): Произошла исключительная ситуация (Microsoft Office Excel): Невозможно получить свойство Select класса Range

вот такая ошибка со скобками (у мя в отладчике лежит
46 rie
 
21.01.09
12:53
(45) Лист - точно существует?
47 gr13
 
21.01.09
12:55
(46) а как проверить? в файле есть визуально
48 rie
 
21.01.09
13:06
(47) Сейчас в Excel лезть лень.
Но попробуй идти последовательно:
по Application получить WorkBook, Worksheet извлекать тоже из Workbook, а не из Application и т.д.
Возможно, что у тебя активным является не тот лист или не та книга.
49 skunk
 
21.01.09
13:12
эт я понимаю ты на 8 ха делаешь
50 Divemaster
 
21.01.09
13:19
(44) давно это не делал... попробуй вот это:
ВыделениеB = ФайлExcel.Worksheets(1).Columns("B:B").Select;
заменить на вот это:
ВыделениеB = ФайлExcel.ActiveSheet.Columns("B:B").Select;
51 skunk
 
21.01.09
13:27

   попытка
       олеЕксель = новый COMОбъект("Excel.Application");
   исключение
       Предупреждение("Не удалось создать объект автоматизации для работы с MS Excel!");
       возврат;
   конецпопытки;
   попытка
       олеКнига = олеЕксель.Workbooks.Open(стрИсточник);
   исключение
       Предупреждение("Не удалось открыть для чтения выбранный файл!");
       возврат;
   конецпопытки;
   олеЛист = олеКнига.Worksheets.Item(1);
   олеВыделеный = олеЕксель.Selection;
   олеЛист.Columns("B:B").Select();
   олеВыделеный.Insert(-4161, 0);
   олеЕксель.Quit();
52 gr13
 
21.01.09
14:04
ФайлExcel = ПолучитьCOMОбъект(ИмяФайла);
   //ФайлExcel.Worksheets(1).Activate();
   
   олеЛист = ФайлExcel.Worksheets.Item(1);
   олеВыделеный = ФайлExcel.Selection;
   олеЛист.Columns("B:B").Select();

ФайлExcel.Selection    {(1)}: Поле объекта не обнаружено (Selection)
53 gr13
 
21.01.09
14:06
(50) вроде получилось, но тогда выходит ошибка на другом.

ФайлExcel = ПолучитьCOMОбъект(ИмяФайла);
ФайлExcel.Worksheets(3).Activate();

КонечнаяСтрока = ФайлExcel.ActiveSheet.Cells.SpecialCells(11).Row;
   
   ВыделениеB = ФайлExcel.ActiveSheet.Columns("B:B").Select();
   ВыделениеB.Insert(xlToRight, 0);

ВыделениеB.Insert(xlToRight, 0)    {(1)}: Значение не является значением объектного типа (Insert)
54 rie
 
21.01.09
14:09
(53) А почему бы не сразу

ФайлExcel.ActiveSheet.Columns("B:B").Insert(xlToRight,0);

И всё же - попробуй расписать всё без пропусков.
Получить книгу (ActiveWorkbook, к примеру; или же по имени), по книге - лист, с листом уже и работать. Явно указывая диапазоны, а не через Select.
Весьма вероятно, что активными книгами/листами может оказаться не то, что предполагалось.
55 skunk
 
21.01.09
14:10
(52)неправильно делаешь ... смотри внимательно (51) ... свойство Selection является свойстом объекта Application а не Workbook
56 gr13
 
21.01.09
14:12
(55) понял - ты 2 попытки делаешь
(54) счас попробую
57 skunk
 
21.01.09
14:17
(55)да попытки тут не причем... это просто прокладки на случай не возможности создать объект "Excel.Application" ... вторая, если вдруг по какой-то причине не получается открыть книгу ... (доступ запрещ, нет книги)


   олеЕксель = новый COMОбъект("Excel.Application");
   олеКнига = олеЕксель.Workbooks.Open("c:\книга1.xls");
   олеЛист = олеКнига.Worksheets.Item(1);
   олеВыделеный = олеЕксель.Selection;
   олеЛист.Columns("B:B").Select();
   олеВыделеный.Insert(-4161, 0);
   олеЕксель.Quit();
58 rie
 
21.01.09
14:17
(56) Лучше прочитай повнимательнее, что тебе написал skunk. И в (55), и раньше. Дело не в попытках.
В Excel - куча _разных_ объектов, и не все свойства/методы не ко всем объектам применимы.
В "Справке" для всех свойств и методов есть вверху ссылочка "Applies To". Иногда очень способствует.
59 gr13
 
21.01.09
14:21
(57) да я понял, счас попробую
60 gr13
 
21.01.09
14:24
ФайлExcel = ПолучитьCOMОбъект(ИмяФайла);
ФайлExcel.Worksheets(НужныйЛист).Activate();
КонечнаяСтрока = ФайлExcel.ActiveSheet.Cells.SpecialCells(11).Row;
   
ФайлExcel.ActiveSheet.Columns("B:B").Insert(xlToRight,0);
ФайлExcel.ActiveSheet.Columns("B:B").Insert(xlToRight,0);

ФайлExcel.ActiveSheet.Columns("B:B").Copy();
ФайлExcel.ActiveSheet.Columns("L:L").Paste();

ФайлExcel.ActiveSheet.Columns("L:L").Paste();    {(1,45)}: Ошибка в выражении
61 skunk
 
21.01.09
14:55

олеЕксель = новый COMОбъект("Excel.Application");
олеКнига = олеЕксель.Workbooks.Open("c:\Книга1.xls");
олеЛист = олеКнига.Worksheets.Item(1);
олеЛист.Columns(2).Insert(-4161, 0);
олеЛист.Columns(2).Insert(-4161, 0);
олеЛист.Columns(2).Copy();
олеЛист.Columns(10).Insert(-4161);
62 gr13
 
21.01.09
14:59
ФайлExcel = ПолучитьCOMОбъект(ИмяФайла);
ФайлExcel.Worksheets(НужныйЛист).Activate();

КонечнаяСтрока = ФайлExcel.ActiveSheet.Cells.SpecialCells(11).Row;
   
ФайлExcel.ActiveSheet.Columns("B:B").Insert(xlToRight,0);
ФайлExcel.ActiveSheet.Columns("B:B").Insert(xlToRight,0);
   
   
ФайлExcel.ActiveSheet.Columns("B:B").Copy();
   
ФайлExcel.ActiveSheet.Columns("L:L").Insert(xlToRight);
   
ФайлExcel.Save();
ФайлExcel.Close();
63 gr13
 
21.01.09
15:00
отрабатывает( но потом не открывается файл
64 skunk
 
21.01.09
15:05
ПолучитьCOMОбъект(ИмяФайла); - косодырит ... юзай...


олеЕксель = новый COMОбъект("Excel.Application");
ФайлExcel = олеЕксель.Workbooks.Open("c:\Книга1.xls");
65 Divemaster
 
21.01.09
15:05
Переделай под такую конструкцию:
Excel = Новый COMОбъект("Excel.Application");
Excel.WorkBooks.Open(ИмяФайла);
Excel.WorkBooks.Close();
Excel = 0;
66 Divemaster
 
21.01.09
15:06
не успел, в (64) уже есть...
67 gr13
 
21.01.09
15:14
ФайлExcel = Новый COMОбъект("Excel.Application");
   ФайлExcel.Workbooks.Open(ВыбранныйФайл);
   
   олеЛист = ФайлExcel.Worksheets.Item(НужныйЛист);

   
   КонечнаяСтрока = олеЛист.Cells.SpecialCells(11).Row;
   
   олеЛист.Columns("B:B").Insert(xlToRight,0);
   олеЛист.Columns("B:B").Insert(xlToRight,0);
   
   
   олеЛист.Columns("B:B").Copy();
   
   олеЛист.Columns("L:L").Insert(xlToRight);
   
   ФайлExcel.Save(ВыбранныйФайл);

пишет что открыт только для чтения(
68 Divemaster
 
21.01.09
15:20
(67) у тебя процесс наверно зависший и не один после экспериментов, убей все в диспетчере задач и попробуй
69 gr13
 
21.01.09
15:24
нажал выполнить... он у мя спрашивает - заменить, я соглашаюсь
"Произошла исключительная ситуауция сохранение открытого документа не возможно
70 rie
 
21.01.09
17:41
(69) Имеет смысл "ему" поверить - если файл открыт только для чтения, то сохранить изменения в нём будет несколько затруднительно. :-)

Опять же - а почему Save() вызывается для Excel в целом, а не для обрабатываемой книги?

Ещё раз - посмотри структуру объектов Excel. Разберись, в чём различие между Application, Workbook, Worksheet (и другими). У _разных_ объектов есть _по разному_ работающие, но _одноименные_ методы. К тому же есть некоторые различия между версиями Excel.

У тебя постоянная путаница между приложением и книгой.
71 gr13
 
21.01.09
17:42
(70) а разве здесь он не позиционируемся на конкретном файле?
ФайлExcel.Workbooks.Open(ВыбранныйФайл);
72 vde69
 
21.01.09
17:45
ты вытаешся сохранить текущий, а это не факт, что тот который нужен

ФайлExcel.Application.DisplayAlerts = 0
ФайлExcel.Workbooks.Save()
ФайлExcel.Application.DisplayAlerts = 1
73 vde69
 
21.01.09
17:46
ФайлExcel.Workbooks.Save() не так
Твой_Workbooks.Save()
74 gr13
 
21.01.09
17:48
(70) заработало

ФайлExcel = Новый COMОбъект("Excel.Application");
КнигаExcel = ФайлExcel.Workbooks.Open(ВыбранныйФайл);
олеЛист = ФайлExcel.Worksheets.Item(НужныйЛист);
КонечнаяСтрока = олеЛист.Cells.SpecialCells(11).Row;
олеЛист.Columns("B:B").Insert(xlToRight,0);
олеЛист.Columns("B:B").Insert(xlToRight,0);
олеЛист.Columns("B:B").Copy();
олеЛист.Columns("L:L").Insert(xlToRight);
КнигаExcel.Save();
ФайлExcel.Quit();

теперь только вот это не отрабатывает
олеЛист.Columns("B:B").Copy();
олеЛист.Columns("L:L").Insert(xlToRight);
75 rie
 
21.01.09
17:50
(74) Не отрабатывает - что это означает?
Не вставляет скопированное? Ну так и не должен. Вставка - методом Paste(). Insert (в данном случае) лишь создаёт колонку.
76 gr13
 
21.01.09
17:52
(75) да не вставляет скопированная, т.е. колонка пустая
77 gr13
 
21.01.09
17:53
(75) а как правильно?
78 rie
 
21.01.09
17:56
(77) Попробуй

олеЛист.Columns("L:L").Insert(xlToRoght);
олеЛист.Columns("B:B").Copy(олеЛист.Columns("L:L");
79 vde69
 
21.01.09
18:00
NewSheet.Range("1:" & i1).Copy Destination:=OldSheet.Range("1:" & i1)
80 vde69
 
21.01.09
18:01
олеЛист.Columns("L:L").Insert(xlToRoght);
олеЛист.Range("B:B").Copy (олеЛист.Range("L:L"))
81 gr13
 
22.01.09
09:27
(78, 80) не работает(((

ФайлExcel = Новый COMОбъект("Excel.Application");
   КнигаExcel = ФайлExcel.Workbooks.Open(ВыбранныйФайл);
   
   олеЛист = ФайлExcel.Worksheets.Item(НужныйЛист);
   
   КонечнаяСтрока = олеЛист.Cells.SpecialCells(11).Row;
   
   олеЛист.Columns("B:B").Insert(xlToRight,0);
   олеЛист.Columns("B:B").Insert(xlToRight,0);
   
   
   олеЛист.Columns("B:B").Copy();
   
   олеЛист.Columns("L:L").Insert(xlToRight);
   олеЛист.Range("B:B").Copy(олеЛист.Range("L:L"));
82 skunk
 
22.01.09
09:33
ты два раза раздвигаешь "B:B" ... то есть на момент копирования в колонке "В" уже пустая строка... вот он в колнку L тебе пустую строчку и копирует
83 gr13
 
22.01.09
09:37
(+81) все супер - все работает.

с утра не догнал. Спасибо
84 skunk
 
22.01.09
09:44
блин так надо было

ты два раза раздвигаешь "B:B" ... то есть на момент копирования "В" уже пустая колонка... вот он пустую колонку L тебе и копирует


не строка - колонка
85 gr13
 
22.01.09
09:51
(84) я догадался, когда отвлекся и подумал
86 gr13
 
22.01.09
09:52
(84) кстати, ты не знаешь способа открытия в 7.7 по OLE внешней обработки?
87 gr13
 
22.01.09
09:52
(+86) я знаю один - изменение в Глобальном модуле. и запуск обработки из процедуры ГМ
88 vde69
 
22.01.09
09:54
(86)

GBase.OpenForm "Отчет." & Application.Worksheets("Настройки").Cells(n, 2).Value, Par, "", "", "", ""


только параметры другие и пример это из VB
89 vde69
 
22.01.09
09:55
(87) Обрати внимание на количество параметров
90 skunk
 
22.01.09
09:55
олеСервер.EvalExpr("openformmodal(""Отчет"", , """ + стрИмяФайлаОбработки + """)");
91 gr13
 
22.01.09
10:08
понял, спасибо
92 gr13
 
22.01.09
11:26
93 vde69
 
22.01.09
13:24
(92) НЕ ПРАВИЛЬНО!!!!

1с и VB - конфликтуют очень часто (из-за отладчиков), по этому "Попытка" - это зло, все мыслемые проверки надо делать явно!!!
94 rie
 
22.01.09
13:33
(92) Проверить существование файла можно через ФС, а не попыткой его открытия.
Опять-таки - где Application, а где Workbook? Насчёт "позиционируется на" - это пока везёт.
Существует ли лист с таким именем - тоже можно определить перебором листов книги (есть у листа свойство Name).
Если написать
Лист = КнигаExcel.Worksheets(1);
а потом вместо
КнигаExcel.Worksheets(1).Cells(1,1) = 123;
писать
Лист = КнигаExcel.Worksheets(1);
то не будет лишние разы дёргаться свойство Worksheets (OLE и без того время пожирает азартнее, чем мишка мёд).
Quit - это просто замечательно. Особенно приятно при этом наблюдать за лицом пользователя, открывшего с десяток нужных ему книг, который запустил 1С-обработку и после завершения её наблюдает, как весь этот десяток книг торжественно закрывается.
95 vde69
 
22.01.09
13:37
http://www.infostart.ru/blogs/718/

тут нет записи, зато подключение и отключение правильные :)
96 skunk
 
22.01.09
13:43
(93)попытка - зло? ... обснуйте...

(94)через ФС много чего нельзя проверить, а вот ексель не откроет... права на чтение к примеру... или открыт файл или нет... или уже открытый в екселе файлик
97 vde69
 
22.01.09
14:01
(96) я уже обьяснил - причина в конфликтах.

То-есть Исключение должно подниматься в ИСКЛЮЧИТЕЛЬНЫХ случаях а не для проверки наличия файла и т.д.

(94) по поводу ФС

// взвращает -1 - нет доступа, 1 - каталог, 0 - файл
Функция ЭтоКаталог(Каталог, ИмяФайла)  

   перем раз, атр;                        

   Если (ИмяФайла = ".") или (ИмяФайла = "..") Тогда
       Возврат -3;
   КонецЕсли;
   
   ФС.АтрибутыФайла(Каталог + ИмяФайла, раз, атр);
   
   Если (Сред(атр,9,1) = "1") и (Сред(атр,4,1) = "1")  Тогда
       Возврат -1;
   ИначеЕсли (Сред(атр,4,1) = "1")  Тогда
       Возврат 1;
   ИначеЕсли (СокрЛП(атр) = "0")  Тогда
       Возврат -2;
   Иначе
       Возврат 0;
   КонецЕсли;
   
КонецФункции

а через скрипты вообще все можно,
98 gr13
 
22.01.09
14:06
(95) ужасный сайт) терпеть не могу инфостарт
99 gr13
 
22.01.09
14:07
а как можно закрыть в данном случае конкретный файл? не все сеансы Excel, а именно конкретный7
100 gr13
 
22.01.09
14:08
(100)
101 gr13
 
22.01.09
14:08
а что за прикол ставить между процедурой (функцией) и скобками пробел?
102 skunk
 
22.01.09
14:09
(97)вы разницу между правом на чтение и аттрибутом понимаете... судя по всему нет... если что... под правом на чтение имелось ввиду не атрибут риад онли... а вкладка безапасность в пропертях
103 gr13
 
22.01.09
14:13
(102) да я помню) я тож как - то на этом попался в базе 7.7... когда расшаривал папочку. Там какие-то настройки нада сделать в 2003? по умолчанию он вроде не требует
104 vde69
 
22.01.09
14:37
(99)
Соответстие["EXCEL"].DisplayAlerts = 0;
Соответстие["ExcelФайл"].Close();
Соответстие["EXCEL"].DisplayAlerts = 1;

(101) мне так зрительней удобно.
(102) я знаю разницу, а вот Вы СП не читали, прочтите по 9 символ
>>>девятый символ: если ''1'' - нет доступа к файлу.
Программист всегда исправляет последнюю ошибку.