Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Обращение к столбцу listrow по имени
 
yoozhik, Пытливый, спасибо, но получаем весь столбец.
Johny, к сожалению Ваш вариант совершенно не подходит.

Суть в том, что происходит импорт из стороннего приложения, получая коллекцию объектов с полями. При этом импортировать нужно только выбранные столбцы, какие и в каком порядке определяет пользователь. И этот порядок может отличаться от порядка в исходных данных. Видимо придётся оставить свой костыль. Похожий на тот который предложил Пытливый.
А именно примерно так:
Код
    Dim sht As Worksheet
    Set sht = ActiveSheet
    Dim lst As ListObject
    Set lst = sht.ListObjects.Add
    lst.Name = "table"
    Dim cols
    cols = Array("Date", "Who", "SendTo", "Subject", "Body")
    For Each cc In cols
        lst.ListColumns.Add.Name = cc
    Next
    
    lst.ListColumns(1).Delete
    
    With lst.ListRows.Add
        lst.ListColumns("Date").DataBodyRange(RowIndex:=.Index) = Now
    End With

Естественно with находится в цикле обработки столбцов импортируемого объекта

Всем спасибо!
Обращение к столбцу listrow по имени
 
Коллеги, добрый день!
Перерыл интернет, справку на msdn, но не нашёл ничего похожего, а именно есть ли возможность обратится к столбцу ListRow по имени, на подобие именованных ячеек:
   
Код
Dim sht As Worksheet
    Set sht = ActiveSheet
    Dim lst As ListObject
    Set lst = sht.ListObjects.Add
    lst.Name = "table"
    Dim cols
    cols = Array("Date", "Who", "SendTo", "Subject", "Body")
    For Each cc In cols
        lst.ListColumns.Add.Name = cc
    Next
    
    lst.ListRows.Add.Range("[Date]") = Now 
Пробовал обращаться разными способами: .Range("Date"),  .Range("@Date"), .Range("[@Date]")
и в .Range.Columns("Date") перебрал все варианты тоже.

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

Заранее спасибо за ответ.
Excel и Internet Explorer 10 в Win 7, Проблема работы Ie10 в Win 7
 
К некоторым у Вас есть доступ, к некоторым нет. К тем к которым у Вас есть доступ уже работают, проблема решалась убиранием исключений в настройках браузера. К адресам внутреннего пользования надо думать, но тут я думаю проблема уже в настройках браузера.

В целом проблема решилась простановкой скобок, я в первый раз не посмотрел, что поправил вызов поставив туда cells().text как я его убрал всё заработало. Далее проблема с внутреннними адресами. Причём интересно, что настройки браузера слизаны с предыдущей машины. Одним словом Мелкософт....

Всем большое спасибо за помощь!
Excel и Internet Explorer 10 в Win 7, Проблема работы Ie10 в Win 7
 
Фантастика!!! Сделал всё как Вы написали. Получилось так что если я в список адрессов добавляю http://www.ya.ru, и отключаю все свои адресса, то всё работает, стоит мне включить один адресс из свеого списка, возникает та злосчастная ошибка.
Цитата
ZVI
Перед Navigate проверьте еще: Debug.Print IE.Offline
Должно быть False
Так и есть

cURL константа
сRow номер текущей строчки
вызов проверки находится в цикле
Изменено: maximjon - 19.11.2013 03:17:49
Excel и Internet Explorer 10 в Win 7, Проблема работы Ie10 в Win 7
 
ZVI Проверил Ваши способы, не вышло.
egonomist Ваш способ также не сработал.
Ошибка таже.
Excel и Internet Explorer 10 в Win 7, Проблема работы Ie10 в Win 7
 
Ваш код на удивление заработал, однако стоило мне добавить к объявлению Sub аргумент aURL as String и передать туда адрес из ячейки на листе, как произошло тоже самое что происходит у меня.
вот код вызова:

Код
Test (CStr(vURLSheet.Cells(cRow, cURL)))

Ваш подправленный код:

Код
Sub Test(aURL As String)
  
  Const TIMEOUT = 10
  
  Dim IE As Object
  Dim t As Single
  Dim txt As String
   
  Set IE = CreateObject("InternetExplorer.Application")
  IE.Navigate aURL
 
 While IE.readyState <> 4 '<---Ошибка возникает тут, т.к. нет свойства readyState
    DoEvents
  Wend
  
 t = Timer + TIMEOUT
    
 While IE.Document Is Nothing And Timer < t
    DoEvents
  Wend
  If IE.Document Is Nothing Then MsgBox "Time is gone", vbCritical, "Canceled": GoTo exit_
  
  txt = IE.Document.body.innerText
  Debug.Print txt
  
exit_:
 
  ' Exit
  IE.Quit
  Set IE = Nothing
  
End Sub
 
Excel и Internet Explorer 10 в Win 7, Проблема работы Ie10 в Win 7
 
Коллеги,
вы меня не совсем правильно поняли, опишу подробно.
Код сам рабочий и прекрасно сейчас крутится на WinXP+Office2010+IE8, нужно его запустить на связке Win7+Office2010+IE10
Расскажу поэтапно:
Рисунки удалены. Превышение допутимого размера [МОДЕРАТОР]
Уже пробовал скопировать настройки безопасности браузера, не помогло.
Excel и Internet Explorer 10 в Win 7, Проблема работы Ie10 в Win 7
 
Спасибо большое, но я это знаю, код который я привёл выше не об этом. А о том что WIE начинает указывать на какое-то другое значение, которое не указывает уже куда не в InternetExplorer. В обычном программирование это называется битая ссылка на память. Ожидание не имеет к этому никакого отношения. Тем более, что в оригинальном коде оно есть.

Про кросспостинг учту спасибо.
Изменено: maximjon - 17.11.2013 23:01:36
Excel и Internet Explorer 10 в Win 7, Проблема работы Ie10 в Win 7
 
Тот форум не специализированный. Поэтому решил разместить тут. Да и тему от туда удалить нельзя.
Excel и Internet Explorer 10 в Win 7, Проблема работы Ie10 в Win 7
 
Тот кросс я и создал. Этот форум я считаю более подходящий для этой темы, тем более на работе не залочен.
Excel и Internet Explorer 10 в Win 7, Проблема работы Ie10 в Win 7
 
Всем привет!
Писалась тулза на WinXP, Office 2010 и использовала она для получения данных с разных страниц IE 8. При попытке запустить макросы на Win 7, Office 2010 и IE 10, макрос допускает ошибку. При тщательном рассмотрении выяснилось, что сразу после использования метода Navigate или Navigate2 переменная содержащая ссылку на объет IE очищается(!!!). При этом кода который это делает нет! Соответственно после Navigate идёт обработка страницы, но т.к. ссылка более не актуальна, это всё дело вызывает ошибку.
Может кто сталкивался с этим, как побороть?

Пример кода:

Код
Dim WIE as Object
Set WIE= CreateObject("InternetExplorer.Application")

WIE.Navigate "www.ya.ru" '<-- Тут всё работает и если предварительно поставить WIE.visible = true, то можно увидеть загруженную страницу
txt$ = WIE.Document.body.innertext '<--А тут уже всё плохо, type WIE становится просто object, и Excel не знает какие свойства есть у объекта. Естественно это вызывает ошибку.

WIE.quit: set WIE = Nothing 
Судя по ошибке IE10 отключает связь с Excel'ем. Но почему?!

Изменено: maximjon - 17.11.2013 18:31:20
Страницы: 1
Наверх