Имя: Пароль:
1C
1С v8
объединять ячейки в worde.
,
0 Domanoff26
 
16.08.13
11:23
есть com word,стоки в таблицу добавлять могу, но не могу добавить строки (ячейки) только в одну колонку, а другие оставлять без изменений, есть идея добавлять строку и не нужные колонки объеденять... как это делается через ком, кто знает?
1 Масянька
 
16.08.13
11:24
На фига ветки плодить....
2 Wobland
 
16.08.13
11:24
я знаю, как это делаится чериз макрозы
3 Domanoff26
 
16.08.13
11:26
(2) с этим вообще не работал, долго осваивать?
4 Wobland
 
16.08.13
11:30
(3) пара кликов
5 Domanoff26
 
16.08.13
11:34
(4) расскажи пжлста
6 Domanoff26
 
16.08.13
11:44
блин неужели не формируете из 1с серьезные Word документы?
7 Wobland
 
16.08.13
11:47
(5) макросы - запись макроса
макросы - изменить
8 Domanoff26
 
16.08.13
11:52
(7) а код какой по объединению?
9 Новенький_2009
 
16.08.13
11:57
(8) то, что ты увидишь в записи макроса. Вот этот код адаптируешь под ком.
10 Domanoff26
 
16.08.13
12:04
(9) а как найти именно этот макрос
11 Domanoff26
 
16.08.13
12:06
кнопка изменить к тому же не активна
12 manyak
 
16.08.13
12:08
(10) ну ты ваще :)
перед записью можно задать имя макроса, задай по имени и найдешь потом...
13 Domanoff26
 
16.08.13
12:15
так какой код то? (4) (2)
14 manyak
 
16.08.13
12:16
(13) такой код - который получился при записи макроса "имя_макроса"
15 Domanoff26
 
16.08.13
12:18
(14) да я не о том, как вообще выглядит программный код макроса объеденяющий ячейки?
16 Wobland
 
16.08.13
12:20
(15) запишешь - узнаешь
17 manyak
 
16.08.13
12:27
(15) вот например код макроса который пишет твой ник:
я задал перед записью ему-макросу  имя Domanoff26, потом по имени нашел его, вытащил код скопировал и вставил сюда:

Sub Domanoff26()
'
' Domanoff26 Макрос
'
'
    Application.Keyboard (1033)
    Selection.TypeText Text:="domanoff26"
End Sub
18 Domanoff26
 
16.08.13
15:51
а кто знает как через ком определить набор ячеек,Cell(4,1) - это одна ячейка, а несколько?
19 Domanoff26
 
16.08.13
15:54
макрос для выделеных ячеек вот такой  Selection.Cells.Merge, но как получитьь этот  Selection для ком?
20 Rie
 
16.08.13
15:56
(18) Это - не одна ячейка, а диапазон из одной ячейки.
21 Domanoff26
 
16.08.13
15:58
(20) вот как его для ком задать?
22 Rie
 
16.08.13
16:01
(21) Range
23 Domanoff26
 
16.08.13
16:02
(22) fа номера ячеек то куда вставлять? ну те есть сам диапазон как проставлять?
24 Wobland
 
16.08.13
16:03
(23) ты думать будешь? или хотя бы читать
25 Domanoff26
 
16.08.13
16:08
я понял что range , только для екселя вижу синтаксис в сети, для ворда не понимаю как начальную и конечную ячейку задавать
26 Wobland
 
16.08.13
16:15
(25) логично было б подумать, что диапазон задаётся для вордовской таблицы?
27 Rie
 
16.08.13
16:15
(25) http://msdn.microsoft.com/en-us/library/office/ff845882.aspx и http://msdn.microsoft.com/en-us/library/office/ff835176(v=office.14).aspx - не поможет?
(MSDN - классная штука; там много полезных и интересных статей).
28 Domanoff26
 
16.08.13
16:38
(26) это понятно я не могу найти для вордовской
29 Domanoff26
 
16.08.13
16:39
(27) а для таблицы нету в этой ссылке ничего
30 Rie
 
16.08.13
16:44
(29) Range в Word задаётся начальной и конечной позициями.
Их извлекаете из Cell(i,j) как Start и End.
Ну а как получили Range (назовём его r) - то и говорите ему
r.Cells.Merge();
31 Domanoff26
 
16.08.13
16:46
Docum.Range(табл.Cell(1,1).Range.Start, табл.Cell(1,2).Range.End) вот так? (30)
32 Domanoff26
 
16.08.13
16:47
это диапазон.
33 Rie
 
16.08.13
16:52
(32) Наверное (если всему всё правильно присвоено).
и к нему теперь - .Cells.Merge()
34 Domanoff26
 
16.08.13
16:54
(33) при определние диапазона пишет ошибку на cell
35 Rie
 
16.08.13
16:58
(34) Ну, значит, не всё всему правильно присвоено.
(Оно же не просто "ошибку на cell" пишет, оно пишет и в чём состоит ошибка).
36 Domanoff26
 
16.08.13
17:14
(35) спасибо
37 Domanoff26
 
19.08.13
09:56
а как скопировать строку или диапазон ячеек например, никто не подскажет?
38 Wobland
 
19.08.13
10:00
записать макрос и посмотреть, как оно это делает?
39 Domanoff26
 
19.08.13
10:06
(38)  Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.MoveUp Unit:=wdLine, Count:=2
    Selection.MoveDown Unit:=wdLine, Count:=1
    Selection.MoveRight Unit:=wdCharacter, Count:=20, Extend:=wdExtend
    Selection.InsertRowsBelow 4
    Selection.Paste  
не очень понимаю. как это на коме будет написано
40 Wobland
 
19.08.13
10:10
(39) копирование не вижу, вставку вижу
41 Domanoff26
 
19.08.13
10:15
(40) а как копировать чтоб в макросе отразилась, я контрл ц нажимал и эта операция не отразилась(
42 Domanoff26
 
19.08.13
10:27
вообще не понимаю как получить этот Selection в коме, может тут надо использовать Range?
43 bborisko
 
19.08.13
10:38
Word = Новый COMОбъект("Word.Application");
Text = Word.selection;

а дальше
Text.EndKey();
Text.Paste();
и тп.
44 djekting
 
19.08.13
10:43
Selection.MoveRight Unit:=wdCharacter, Count:=2, Extend:=wdExtend
    Selection.EscapeKey
    Selection.Cells.Merge
45 Domanoff26
 
19.08.13
10:50
(43) сдесьбудет весь объект как selection? мне нужна только часть таблицы
46 Domanoff26
 
19.08.13
10:51
(44) а в КОМе как это все выглядит?
47 Domanoff26
 
19.08.13
11:50
ну подскажите как в коме все таки строчку скопировать
48 Rie
 
19.08.13
11:57
(47) Word - Сервис - Редактор Visual Basic.
F2 - и смотришь значения констант (например, wdLine - это число 5).
Вызовы методов. В отличие от VBA - параметры надо в скобки брать. И - нет именованных параметров, то есть, Unit:= - не надо писать.
Порядок параметров и их количество - смотришь, к примеру, в MSDN. Или во встроенной справке Word Basic.
49 Domanoff26
 
19.08.13
12:59
(48) не могу найти этот selection
табл.Rows(2).range().copy(); - вот это вроде работает, а как ее правильно вставить?
50 Rie
 
19.08.13
13:08
(49) Метод Select использовать - он вернёт Selection. Дальше над ней можно поиздеваться (особенно если ячейки по столбцам объединять надо).
51 Domanoff26
 
19.08.13
14:08
(50) диап = Docum.Range(табл.Cell(3,1).Range.Start, табл.Cell(3,4).Range.End);
    //Docum.Range(табл.Cell(1,1).Range.Start, табл.Cell(1,4).Range.End);
      //  табл.Rows(13).range().InsertAfter(диап);
        табл.range().InsertAfter(диап);
почему вот это всталяет не сам диапазон а текст диапазона в последнюю ячейку, что то забыл?
52 Rie
 
19.08.13
14:18
(51) Потому что InsertAfter "inserts the specified _text_ at the end of a range or selection"?
53 Domanoff26
 
19.08.13
15:25
(52)согласен, какой для ячеек метод ? не могу найти
54 Rie
 
19.08.13
15:30
(53) Поясни задачу. Если я правильно понял - то есть таблица Word, в ней надо объединить несколько ячеек. Но сейчас почему-то вопросы по копированию. Так что нужно - копировать или объединять?
55 Domanoff26
 
19.08.13
15:45
(54) объеденять научилс\я, хочу понять как копировать
56 Domanoff26
 
19.08.13
15:46
Docum.Range(табл.Cell(3,1).Range.Start, табл.Cell(3,4).Range.End).select() - Selection не получается, в отладчике неопределено
57 Domanoff26
 
19.08.13
15:47
вообще хочу копировать блоки таблиц и вставлять в определенные места
58 Rie
 
19.08.13
16:06
(57) Простейший вариант - через буфер обмена.
Например, в твоей таблице скопировать ячейку (3,3) в ячейку (3,4):
Docum.Range(табл.Cell(3,3).Range.Start, табл.Cell(3,3).Range.End).Copy();
Docum.Range(табл.Cell(3,4).Range.Start, табл.Cell(3,4).Range.End).Paste();
59 Domanoff26
 
19.08.13
16:13
(58) пара минут назад до самого дошло но спсаибо
60 Domanoff26
 
19.08.13
16:17
(58) а вот заполнение только каждую ячейку отдельно? т е по по cell(номерстроки,номерколонки) или мложно как нить более удобно?
61 Domanoff26
 
19.08.13
16:23
я могу в созданную ячейку добавлять параметр Variables, чтоб потом через Docum.Variables.Item(имяпараметра).Value заполнять таблицу
62 Rie
 
19.08.13
16:46
(60) А чем плохо пройти циклом - и записать нужные значения?
(61) В принципе, у Cell есть метод Formula - можно не только переменную вставить.
63 Domanoff26
 
20.08.13
10:36
(62) а не знаешь, я вот ввожу строку с символами.пс, а в ворде оно отображается как в одну строку просто ссимволом
квадратика, как его реально на новую строку переносить?
64 Rie
 
20.08.13
11:15
(63) Начать новый абзац - это InsertParagraph
Начать новую строку - это InsertBreak(11).
65 Domanoff26
 
20.08.13
16:09
Docum.Range(табл.Cell(1,1).Range.Start, табл.Cell(1,4).Range.End); выделяет я так понял ячейки идя слева на право и вниз. а как выделить две строки одно колонки например в диапазон? (54)
66 Rie
 
20.08.13
16:23
(66) Воспользоваться методом Merge объекта Cell. Например:
табл.Cell(1,1).Merge(табл.Cell(2,3));
Параметр - ячейка, по какую объединять.
67 Domanoff26
 
21.08.13
09:21
(66) спасибо, мир не без вас)
68 Domanoff26
 
21.08.13
09:46
(66) а не подскажите как добавлять колонку в определенную строку, чтоб не объеденять потом все строки?
69 Domanoff26
 
21.08.13
09:57
все отпало нашел
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший