powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вставка столбца в Excel. Help!
9 сообщений из 9, страница 1 из 1
Вставка столбца в Excel. Help!
    #33208016
Yuri Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе утро!

Помогите пожалуйста. Нужно вставить в сформированный лист Excel один столбец в середине таблички и перекинуть в него с помощью Cut/Paste другой столбец. Не выходит. :( Комп ругается на команду: ExcObj.Selection.EntireColumn.Insert фразой "OleError ..... Неизвестное имя.". Что не так, что ему, хороняке надо? Команда Insert_Shift тоже не слишком-то проходит... Код приведен ниже:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
oleXL = CreateObject('Excel.Sheet')
ExcObj = oleXL.ActiveSheet

ExcObj.Columns("AG:AG").Select
*ExcObj.Range("AG2").Activate
*ExcObj.Selection.Insert_Shift:=xlToRight
ExcObj.Selection.EntireColumn.Insert
ExcObj.Columns("AO:AO").Select
ExcObj.Selection.Cut
ExcObj.Columns("AG:AG").Select
*ExcObj.Range("AG2").Activate
ExcObj.ActiveSheet.Paste
_______________________________________________________
Обходя разложенные грабли, ты теряешь драгоценный опыт!
...
Рейтинг: 0 / 0
Вставка столбца в Excel. Help!
    #33208059
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а так?
oleXL = CreateObject('Excel.Sheet')
ExcObj = oleXL.ActiveSheetExcObj.Columns("AG1").Select
ExcObj.Selection.EntireColumn.Insert
...
Рейтинг: 0 / 0
Вставка столбца в Excel. Help!
    #33208071
leaf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ExcObj.Selection.EntireColumn.Insert это применяется кажеться к объекту приложение эксель а не к объекту лист эксель
...
Рейтинг: 0 / 0
Вставка столбца в Excel. Help!
    #33208119
Yuri Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо. :) Немного покопавшись, выяснил, что всё делается намного проще, чем нарисовал рекордер. :) Всего-то:

Код: plaintext
1.
2.
3.
4.
5.
6.
oleXL = CreateObject('Excel.Sheet')
ExcObj = oleXL.ActiveSheet

ExcObj.Columns("AG").Insert(-4161)
ExcObj.Columns("AO").Cut
ExcObj.Columns("AG").Select
ExcObj.Paste
_______________________________________________________
Обходя разложенные грабли, ты теряешь драгоценный опыт!
...
Рейтинг: 0 / 0
Вставка столбца в Excel. Help!
    #33208458
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На самом деле, все еще проще.

НЕ НАДО ИСПОЛЬЗОВАТЬ SELECT

метод Select - это всего-лишь визуализация ваших действий. Аналог SetFocus() в FoxPro. А зачем это надо?

Если я правильно понял, необходимо просто переместить столбец в другое место.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
oleXL = CreateObject('Excel.Sheet')
ExcObj = oleXL.ActiveSheet
ExcObj.Cells()

* КОПИРУЕМ содержимое столбца "AO" в столбец "AG"
ExcObj.Columns("AO").COPY(ExcObj.Columns("AG"))
* Удаляем уже не нужный столбец "AO"
ExcObj.Columns("AO").Delete()

Вообще-то, обращение по именам столбцов не самая удачная идея. Лучше использовать их порядковые номера. Подробнее об адресации к ячейкам Excel можно почитать здесь

Перевод макроса Excel в синтаксис FoxPro
...
Рейтинг: 0 / 0
Вставка столбца в Excel. Help!
    #33208704
Yuri Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я подозревал, что нечто подобное возможно. Ведь тоже самое сам сделал, только с листами, если помните... ;) Спасибо! :)

Про нумерацию согласен, но просто взял уже из макрорекордера... Таблица фиксирована по ширине и длине, и в данном конкретном случае нет возможности, что что-либо перенесется не туда.
_______________________________________________________
Обходя разложенные грабли, ты теряешь драгоценный опыт!
...
Рейтинг: 0 / 0
Вставка столбца в Excel. Help!
    #33210541
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оказалось, что в методе CUT() можно указать куда переместить столбец. Т.е. это будет полный аналог MOVE.

Код: plaintext
1.
2.
3.
oleXL = CreateObject('Excel.Sheet')
ExcObj = oleXL.ActiveSheet

ExcObj.Columns("AO").Cut(ExcObj.Columns("AG"))

То-то я ничего в описании MOVE() не нашел.
...
Рейтинг: 0 / 0
Вставка столбца в Excel. Help!
    #33211255
Yuri Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ВладимирМОказалось, что в методе CUT() можно указать куда переместить столбец. Т.е. это будет полный аналог MOVE.

Код: plaintext
1.
2.
3.
oleXL = CreateObject('Excel.Sheet')
ExcObj = oleXL.ActiveSheet

ExcObj.Columns("AO").Cut(ExcObj.Columns("AG"))

То-то я ничего в описании MOVE() не нашел.
...
Рейтинг: 0 / 0
Вставка столбца в Excel. Help!
    #33211271
Yuri Tyurin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Совсем удобно. :) А главное - быстро. :) Мой глубочайший респект. :)
Единственное "но" - у меня не отрабатывает нормально без вставки столбца insert-ом. Получается пустой столбец AG, нужная информация из него пропадает, а информация из АО никуда не переносится.

Получается так:
ExcObj.Columns("AG").Insert(-4161)
ExcObj.Columns("AO").Cut(ExcObj.Columns("AG"))

ВладимирМОказалось, что в методе CUT() можно указать куда переместить столбец. Т.е. это будет полный аналог MOVE.

Код: plaintext
1.
2.
3.
oleXL = CreateObject('Excel.Sheet')
ExcObj = oleXL.ActiveSheet

ExcObj.Columns("AO").Cut(ExcObj.Columns("AG"))

То-то я ничего в описании MOVE() не нашел.
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Вставка столбца в Excel. Help!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]