Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2010, 10:34   #1
OlegAB7819
 
Регистрация: 22.01.2010
Сообщений: 3
Восклицание объединение ячеек

Здравствуйте!
Извиняюсь за возможно глупый вопрос, поискал по форуму, ничего не нашел или не понял.
С вба общаюсь впервые, имел дело с в основном только с С, ASM
Но сейчас нахожусь в ступоре, надеюсь на вашу помощь, или тыкните пальцем где можно найти ответ.

В общем виде задача: Имеется книга с несколькими листами. На первом (я его назвал "Начало") вводятся в столбец наименования товаров, ..... Необходимо эти наименования скопировать в формы на других листах (акт, накладная...)
Но в формах наименование товара состоит из нескольких ячеек в строку. Т.е. их надо объединить. И после скопировать туда наименования. Для этого на первом листе сделал кнопку, и подвязал к макросу:
Dim Act As Long
Dim Mindex As Long
Dim Start As Long
Start = 19
Act = 18
Mindex = 1

Do While x < 10000
If Worksheets("Начало").Cells(Start + Mindex, 1) <> "" Then
Worksheets("Акт").Cells(Act + Mindex, 1).EntireRow.Insert
Worksheets("Акт").Range(Cells((Act + Mindex), 2), Cells((Act + Mindex), 3)).Select -(на этой строчке выдается ошибка "excel Application-defined or object-defined error"
Worksheets("Акт").Range(Cells(Act + Mindex, 2), Cells(Act + Mindex, 3)).Merge

Хотя создаю новую книгу, пишу:
Worksheets("Книга1").Range(Cells(1, 1), Cells(1, 2)).Select
Worksheets("Книга1").Range(Cells(1, 1), Cells(1, 2)).Merge
Работет

Подскажите пожалуйста чего не хватает, где ошибка?
OlegAB7819 вне форума Ответить с цитированием
Старый 22.01.2010, 10:47   #2
AnnNet
Пользователь
 
Регистрация: 21.07.2008
Сообщений: 57
По умолчанию

Попробуйте вместо
Worksheets("Акт").Range(Cells((Act + Mindex), 2), Cells((Act + Mindex), 3)).Select
Worksheets("Акт").Range(Cells(Act + Mindex, 2), Cells(Act + Mindex, 3)).Merge
написать так:
Range(Worksheets("Акт").Cells(((Act + Mindex), 2), Worksheets("Акт").Cells((Act + Mindex), 3)).Select
With Selection
.MergeCells = False
End With
Selection.Merge (True)

Последний раз редактировалось AnnNet; 22.01.2010 в 11:18.
AnnNet вне форума Ответить с цитированием
Старый 22.01.2010, 10:57   #3
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Хочу обратить внимание, что Ваша строка кода
Код:
Worksheets("Акт").Range(Cells(Act + Mindex, 2), Cells(Act + Mindex, 3)).Merge
будет работать без ошибки лишь в том случае, когда лист "Акт" активный (тогда ссылка на лист вообще не требуется). Если лист не активен, то ссылку на лист требуется повторять при каждом обращении к ячейке (диапазону). Именно поэтому, при создании новой книги у Вас все работает, т.к. она автоматически становится активной.
Замените фрагмент Вашего кода
Код:
Worksheets("Акт").Cells(Act + Mindex, 1).EntireRow.Insert
Worksheets("Акт").Range(Cells((Act + Mindex), 2), Cells((Act + Mindex), 3)).Select
Worksheets("Акт").Range(Cells(Act + Mindex, 2), Cells(Act + Mindex, 3)).Merge
на такой:
Код:
x = Act + Mindex
With Worksheets("Акт")
    .Rows(x).Insert: .Range(.Cells(x, 2), .Cells(x, 3)).Merge
End With
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 22.01.2010 в 11:15.
SAS888 вне форума Ответить с цитированием
Старый 22.01.2010, 11:45   #4
OlegAB7819
 
Регистрация: 22.01.2010
Сообщений: 3
По умолчанию

AnnNet к сожалению не сработало, но все равно спасибо за внимание.

SAS888 ОГРОМНОЕ СПАСИБО, работает! И отдельное спасибо за комментарий. Жаль, что не могу плюсануть, или не нашел где.
OlegAB7819 вне форума Ответить с цитированием
Старый 22.01.2010, 13:21   #5
Xpoft
Пользователь
 
Регистрация: 25.11.2009
Сообщений: 55
По умолчанию

Цитата:
или не нашел где.
слева под ником пользователя весы
Не бывает сложных задач, бывают сложные решения
Xpoft вне форума Ответить с цитированием
Старый 22.01.2010, 16:27   #6
OlegAB7819
 
Регистрация: 22.01.2010
Сообщений: 3
По умолчанию

Xpoft Спасибо, подумал, что не то, но туда уже писанул
OlegAB7819 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объединение ячеек ing60 Microsoft Office Excel 13 17.10.2019 21:35
Объединение ячеек Помогите!!! Dmitriyq Microsoft Office Excel 1 22.07.2009 10:41
Объединение ячеек в строке slon_slon Microsoft Office Word 6 14.03.2009 23:08
Объединение ячеек Katherina_Koval Microsoft Office Excel 3 29.07.2008 06:53
Объединение ячеек в таблице SnakeMan Общие вопросы Delphi 2 01.04.2008 12:33