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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.08.2009, 11:37   #1
Klakson
Новичок
Джуниор
 
Регистрация: 22.06.2009
Сообщений: 2
По умолчанию Метод Select. Где ошибка??

Здравствуйте уважаемые форумчане! Возникла проблема с кодом.
Цель программы - "взять" данные из так называемого SharePoint, импортировать в эксель, и затем сверстать эскуэль скрипт. Сейчас проблема заключается в том, что когда я переношу нужные мне столбцы на другой лист, у меня формат даты изменяется в числовой формат. Посредством ВБА я бы хотел выделить нужный мне столбец, и изменить его формат на ""m/d/yyyy". Но программа выдает ошибку. Где я не прав? Спасибо заранее. Ниже код:

Sub SQLQUERY()

'----------------- очистка листа --------------------

Sheets("Sheet2").Range("A1: Q1000").Delete

'--------------


'----------------синхронизация------------------

Sheets("Sheet1").Select
ActiveSheet.ListObjects("Список1"). UpdateChanges xlListConflictDialo

'----------------

Columns("C:C").Select
Selection.NumberFormat = "m/d/yyyy"
' ВОТ ТУТ ВСЕ ПРЕКРАСНО РАБОТАЕТ!

Sheets("Sheet2").Select



j = 2

While Sheets("Sheet1").Cells(j, 2) <> ""

Sheets("Sheet2").Cells(j - 1, 1) = Sheets("Sheet1").Cells(j, 2)

Sheets("Sheet2").Cells(j - 1, 2) = Sheets("Sheet1").Cells(j, 3)

Sheets("Sheet2").Cells(j - 1, 3) = Sheets("Sheet1").Cells(j, 4)

Sheets("Sheet2").Cells(j - 1, 4) = Sheets("Sheet1").Cells(j, 7)

Sheets("Sheet2").Cells(j - 1, 5) = Sheets("Sheet1").Cells(j, 15)

j = j + 1

Wend


Columns("B:B").Select
'А ВОТ ПОСЛЕ ЭТОГО СЕЛЕКТА ЭКСЕЛЬ ВЫДАЕТ ОШИБКУ
Selection.NumberFormat = "m/d/yyyy"


End Sub
Klakson вне форума Ответить с цитированием
Старый 11.08.2009, 12:19   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Во-первых, Select - это почти всегда ни к чему.
Во-вторых, лучше, сначала задать формат ячеек листа, а уже затем, вставлять данные.
Учитывая все, выше сказанное и ничего не переделывая в Вашем коде, макрос будет выглядеть примерно так:
Код:
Sub SQLQUERY()
    Dim sh As Worksheet: Set sh = Sheets("Sheet1"): Application.ScreenUpdating = False
    Sheets("Sheet2").Activate: [A1: Q1000].ClearContents
    sh.ListObjects("Список1").UpdateChanges xlListConflictDialo
    sh.[C:C].NumberFormat = "m/d/yyyy": [B:B].NumberFormat = "m/d/yyyy": j = 2
    While sh.Cells(j, 2) <> ""
        Cells(j - 1, 1) = sh.Cells(j, 2): Cells(j - 1, 2) = sh.Cells(j, 3)
        Cells(j - 1, 3) = sh.Cells(j, 4): Cells(j - 1, 4) = sh.Cells(j, 7)
        Cells(j - 1, 5) = sh.Cells(j, 15): j = j + 1
    Wend
End Sub
Попробуйте, может это поможет.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 11.08.2009, 12:36   #3
Klakson
Новичок
Джуниор
 
Регистрация: 22.06.2009
Сообщений: 2
По умолчанию

Огромное спасибо!!! Все замечательно работает!
Klakson вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
В зависимости от выбора в Select изменить значения другого Select Tayfun HTML и CSS 3 18.08.2011 00:05
Метод простых итерации для нелинейных уравнений. Подскажите где ошибка DuHbka Помощь студентам 15 31.05.2009 22:46
ошибка VBA при попытке использовать свойство или метод chanchikela Microsoft Office Access 0 26.03.2008 23:17
Передача значения в <select></select> kkkggg Gamedev - cоздание игр: Unity, OpenGL, DirectX 1 06.09.2007 00:26