Форум программистов, компьютерный форум, киберфорум
Наши страницы
MS Office Excel
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.77/99: Рейтинг темы: голосов - 99, средняя оценка - 4.77
Igor_Tr
4368 / 652 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
1

Как удалить столбец таблицы (vba)?

06.04.2010, 21:14. Просмотров 18311. Ответов 10
Метки нет (Все метки)

Столбец проходит через диапазон обьединенных ячеек (например Сolumns(h) через ячейку, обьеденившую ячейки G10, H10, i10) Отменять обьединение не желательно. Что только не пробую - глухо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.04.2010, 21:14
Ответы с готовыми решениями:

VBA. Как дописать данные в столбец?
Форумчане, привет! Нужна ваша помощь по вопросу. Есть код, копирующий данные...

Excel как удалить столбец?
подскажите, пожалуйста, как удалить столбец, чтобы заглавие не затронуть.

Как удалить столбец в Excel'е так чтобы нумерация стоящих справа столбцов не съехала?
Как удалить столбец в Excel'е так чтобы нумерация стоящих справа от него...

Столбец именованной таблицы в формулах
Здравствуйте! Помогите, пожалуйста, понять, как можно использовать столбец...

Транспонирование таблицы в один столбец
Доброго времени суток. Помогите, как можно транспонировать таблицу в один...

10
Yurii_74
paladin
284 / 184 / 7
Регистрация: 25.02.2009
Сообщений: 592
07.04.2010, 07:47 2
Если удалять столбец, в котором находится первая ячейка из объединенных, то данные из нее теряются . По идее можно все такие ячейки разъединять, копировать значение в следующую за ней, снова объединять как надо (как было, за исключением удаляемого) и проводить удаление лишнего столбца.
Также можно просто скрыть столбец. Тогда дополнительно что-то делать не потребуется.
0
Igor_Tr
4368 / 652 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
07.04.2010, 14:54  [ТС] 3
To Yurij. Спасибо за ответ, но ситуация не стандартная, таблица большая, в ней много обьединенных ячеек разной длинны, причем размещены на листе асиметрически. Сделать можно, но очень долго. Может есть какое-нибудь решение попроще?
0
Alex77755
10738 / 3311 / 549
Регистрация: 13.02.2009
Сообщений: 9,744
08.04.2010, 00:38 4
Старайся не применять объединение ячеек. С ним всегда столько геморроя
0
petr-sev
493 / 127 / 19
Регистрация: 30.03.2010
Сообщений: 222
08.04.2010, 14:24 5
Для удаления столбца нужно применить метод Delete, непосредственно к самому столбцу, не выделяя его перед этим
Для сравнения:

Columns(h).Delete 'удаляет только указанный столбец

Columns(h).Select
Selection.Delete 'удаляет все столбцы, участвующие в объединении
1
Igor_Tr
4368 / 652 / 36
Регистрация: 17.01.2010
Сообщений: 2,134
11.04.2010, 11:14  [ТС] 6
Цитата Сообщение от petr-sev Посмотреть сообщение
Для удаления столбца нужно применить метод Delete, непосредственно к самому столбцу, не выделяя его перед этим
Для сравнения:

Columns(h).Delete 'удаляет только указанный столбец

Columns(h).Select
Selection.Delete 'удаляет все столбцы, участвующие в объединении
Спасибо, работает. Действительно, для контроля я выделял столбец, что в окончательном варианте кода планировалось удалить. Теперь все на месте. Еще раз спасибо.
1
scherbakovss201
15 / 6 / 16
Регистрация: 22.12.2015
Сообщений: 1,610
01.03.2016, 02:48 7
у меня есть 6 столбцов и 16 строк как в цикле FOR
удалить стоблбцы и строки в диапазоне с(задаеться textbox1.value=3) по
'к-во всего столбцов в бд
cellx = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).Column
'к-во всего строк в бд
rowx = ActiveSheet.Cells.SpecialCells(xlCellTypeLastCell).row
0
Казанский
14141 / 5843 / 1532
Регистрация: 24.09.2011
Сообщений: 9,173
01.03.2016, 03:03 8
scherbakovss201, а зачем в цикле?
Visual Basic
1
2
range(columns(3),columns(cellx)).delete 'столбцы
range(rows(3),rows(rowx)).delete 'строки
0
scherbakovss201
15 / 6 / 16
Регистрация: 22.12.2015
Сообщений: 1,610
01.03.2016, 04:09 9
вы не знаете какое пользователь в textbox1 ведет значение.Пример для трех хорош.
0
Казанский
14141 / 5843 / 1532
Регистрация: 24.09.2011
Сообщений: 9,173
01.03.2016, 09:02 10
scherbakovss201, а вместо "3" подставить значение текстбокса - не судьба?
Visual Basic
1
2
3
n=val(textbox1.value)
range(columns(n),columns(cellx)).delete 'столбцы
range(rows(n),rows(rowx)).delete 'строки
0
scherbakovss201
15 / 6 / 16
Регистрация: 22.12.2015
Сообщений: 1,610
01.03.2016, 17:19 11
О так можно удалять без цикла.Круто.А можно ли загрузать(открыть/импортировать) бд екселе на vba
скажем не всю,а только к-во строк/стролбцов указанных в textbox1.value?
PureBasic
1
2
3
4
5
Private Sub C()
    Workbooks.OpenDatabase Filename:= _
        "C:\Users\user\Downloads\lab\задачи\lab1\Database31.accdb", CommandText:=Array( _
        "копия ""сотрудники"""), CommandType:=xlCmdTable, ImportDataAs:=xlTable
End Sub
0
01.03.2016, 17:19
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
01.03.2016, 17:19

Подстановка значения в столбец из столбца другой таблицы
Всем доброго дня! Есть две таблицы. В первой указываю регионы: код региона и...

Удалить строку, если нужный мне столбец пустой
Здравствуйте. Помогите пожалуйста. Нужно удалить строку, если ячейка из нужного...

Отсев данных по формуле: Столбец 3 = Столбец 1 - Столбец 2
Уважаемые умные мужчины! Подскажите девушке, а то никак не могу разобраться...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru