|   |   | 
| 
 | объединять ячейки в 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, потом по имени нашел его, вытащил код скопировал и вставил сюда: 
 | |||
| 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 | 
        все отпало нашел     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |