Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > VB6 > переписать VBA на VB


Автор: Paradox 20.7.2004, 13:20
задачка такая
создать новый лист Excel и скопировать на нее некоторую область с другого листа
пытаюсь так - ставлю заппись макроса и делаю это руками, потом смотрю получившийся код VBA
Код
Sheets("JDE").Select
   Sheets.Add
   Sheets("JDE").Select
   Range("A1:D67").Select
   Selection.Copy ' выделенная строчка ))
   Sheets("Лист1").Select
   Selection.Insert Shift:=xlDown ' выделенная строчка ))


вопорос: как то же самое реализовать на VB
особенно интересуют выделенные строчки
что за объект такой selection - некоторое свойство Excel.Application или еще что то ?

Автор: Naghual 20.7.2004, 14:44
Реализовывается это примерно так:
Код
   Dim XL As Excel.Application
   Dim WBK As Excel.Workbook
   Dim WshTarget As Excel.Worksheet
   
   'Создаем ексель как объект
   Set XL = New Excel.Application
   'Открываем книгу
   Set WBK = XL.Application.Workbooks.Open("c:\book.xls")
   'Создаем Лист-Получатель
   Set WshTarget = WBK.Worksheets.Add
   'Переименовываем новый лист
   WshTarget.Name = "New Worksheet"
   'Копируем данные из Источника
   WBK.Worksheets("JDE").Range("A1:D67").Copy
   'Вставляем данные в Получатель
   WshTarget.Range("A1").Insert xlShiftDown
   'Сохраняем и закрываем книгу
   WBK.Save
   WBK.Close
   'закрываем Ексель
   Set XL = Nothing


А объект Selection это глобальный алиас к выделенному объекту или диапазону.

Автор: Paradox 21.7.2004, 05:37
большое спасибо Naghual
все работает

зы я примерно так и делал, но не работало из-за того что это
Код
WBK.Worksheets("JDE").Range("A1:D67").Copy
  'Вставляем данные в Получатель
  WshTarget.Range("A1").Insert xlShiftDown

писал немного не так

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)