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

Страницы: 1 2 3 След.
Как передать в vba диапазон одной ячейки в переменную?
 
Спасибо.
Как передать в vba диапазон одной ячейки в переменную?
 
vikttur, получается, что ячеек должно быть минимум две?
Как передать в vba диапазон одной ячейки в переменную?
 
Уважаемые форумчане, доброго времени суток.
Подскажите, пожалуйста, почему c диапазоном в одну ячейку код не работает?
Код
Sub test()
Dim Qb As Workbook
Dim Mq()Set Qb = ThisWorkbook
Mq = Qb.Application.Range(Cells(1, 1), Cells(1, 1))
End Sub
Здесь типы получаются разные: range и variant

Код
?typename(Mq)

Variant()
Код
?typename(Qb.Application.Range(Cells(1, 1), Cells(1, 1)))

Range

А когда в диапазоне больше одной ячейки, то код работает:
Код
Sub test1()
Dim Qb As Workbook
Dim Mq()Set Qb = ThisWorkbook
Mq = Qb.Application.Range(Cells(1, 1), Cells(2, 1))
End Sub
Типы остаются без изменений. А ошибки Type mismatch не возникает.
Вставить только значения из закрытой книги
 
И с кодом    
 
TempWb.Sheets("Лист1").Range("A1:Q6000").Copy  
BazaSht.Range("A1").PasteSpecial xlPasteValues  
 
Тоже все нормально копируется.
Вставить только значения из закрытой книги
 
Книга3
Вставить только значения из закрытой книги
 
KukLP,  
Уважаемые форумчане.  
Здравствуйте. Спасибо еще раз за помощь и приглашение разобраться в проблеме.  
Обстоятельства были следующие.  
С помощью кода  
Код    
 
TempWb.Sheets("Лист1").Range ("A13:B6000").Copy  
BazaSht.Range("J7").PasteSpecial xlValues      
   
Копировались данные из одной книги в другую (версия 2003).  
В книге – источнике (Книга1) данных было применено условное форматирование некоторых ячеек. Книга – получатель(Книга2) данных работала нормально. Фильтр работал быстро.  
Затем на ПК поставили 2007.  
Через некоторое время книга получатель стала сильно тормозить – долго обрабатывались данные и при открытии и при обновлении данных. Фильтр также отрабатывал очень долго.  
После проверки обнаружил, что в книге получателе образовалось большое количество условий по установке условного формата (как то они туда скопировались накопительным порядком)  
Путь решения вырисовался следующий.  
1. Либо у меня что-то не так с кодом. И в 2003 это не проявилось.  
2.Либо в 2007 что-то не учел.  
На «скорую руку» проблему решил удалением условного форматирования со всего листа в книге получателе данных. Отработка данных при открытии и просмотре «колесиком» стала приемлемой. Но работа фильтра так и не улучшилась.  
 
А вот с применением кода    
Код    
 
Range("A1").Value = Range("A2").Value    
   
Все изменилось.  
Условие условного форматирования в книгу получатель (Книга3) не переносится при копировании значений. Данные с пустым значением, переносятся как пустое значение (не «0»).Данные можно посмотреть быстро, фильтр работает быстро. Правда, на пробной версии. Здесь записей совсем мало.  
Оригинальная таблица сама небольшая: 1500 строк и около 30 столбцов. Формат данных по столбцам: текстовый, числовой и дата. «Привинитить» новый код к ней еще не успел.  
 
Главное, что было непонятно, – почему в 2003 проблем не было, а в 2007 они появились?  
Буду признателен за отклик и разъяснения  
Спасибо.  
В архиве Книга2 – то, что было и не работало, Книга3 – то, что стало.
Вставить только значения из закрытой книги
 
Понятно, спасибо за конструкцию:)  
Я использовал Destination. Его здесь не требуется
Вставить только значения из закрытой книги
 
Уважаемые форумчане.  
Что сделано не так в этом файле Книга2?
Вставить только значения из закрытой книги
 
xlValues показывает при остановке макроса на -4163. Ни замена на число, ни манипуляции с ReadOnly:=True результатов пока не дали, ошибка та же
Вставить только значения из закрытой книги
 
Уважаемые форумчане!  
Есть такой вариант копирования данных из закрытой книги:  
Sub Кнопка21_Щелкнуть()  
Dim TempWb As Workbook  
Dim BazaSht As Worksheet  
Dim iPath As String  
With Application  
.ScreenUpdating = False  
.Calculation = xlCalculationManual  
Set BazaSht = ActiveSheet  
iPath = ActiveWorkbook.Path & "\"  
Set TempWb = Workbooks.Open(Filename:="V:\" & "1.xls", UpdateLinks:=False, ReadOnly:=True)  
TempWb.Sheets("Лист1").Range("A13:B6000").Copy Destination:=BazaSht.Range("J7")  
 
TempWb.Close saveChanges:=False  
.Calculation = xlAutomatic  
.ScreenUpdating = True  
End With  
End Sub  
 
Но при этом копируются и форматы тоже.  
Подскажите, пожалуйста - как сделать так, чтобы копировались только значения?  
Вынужден вернуться к теме "вставки только значений" в связи с установкой Excel 2007.  
На выражение    
TempWb.Sheets("Лист1").Range ("A13:B6000").Copy  
BazaSht.Range("J7").PasteSpecial xlValues    
   
Компилятор подчеркивает всю строку красным цветом, а xlValues выделяет синим фоном.  
После заключение xlValues в скобки при запуске программы - пишет "Невозможно получить свойство PasteSpecial класса Range".  
С проставленными аргумнтами PasteSpecial тоже появляется ошибка.    
Подскажите, пожалуйста, что здесь не так?    
Как вставить только значения?
останавливается выполнение процедуры по таймеру
 
Первый раз  файлы открываются, обновляются, сохраняются.  
Но во-второй раз при открытии файла Расчет2.xls процедура останавливается и появляется окно Run Time Error 1004 Method Open of object Workbooks failed  
Подскажите, пожалуйста, «из-за чего это происходит и что делать?»    
 
Sub Кнопка4_Щелкнуть()  
   Dim dTime As Date  
   Workbooks.Open Filename:="D:\" & "Расчет" & ".xls"  
   Application.Run "'Расчет.xls'!Кнопка41_Щелкнуть"  
   ActiveWorkbook.Close (True)  
 
   Workbooks.Open Filename:="D:\" & "Расчет2" & ".xls"  
   Application.Run "'Расчет2.xls'!Кнопка181_Щелкнуть"  
   ActiveWorkbook.Close (True)  
   dTime = Now + TimeValue("00:01:00")  
   Application.OnTime dTime, "Кнопка4_Щелкнуть" ', , True  
 
End Sub
Не работает ЧИСТРАБДНИ в Excel 2007
 
Промежуточный итог такой. На отдельном ПК в Excel 2007 открываю файл, сделанный в Excel 2003. Заменяю ЧИСТРАБДНИ на ЧИСТРАБДНИ. Ошибка #ИМЯ? исчезает. Сохраняю файл и закрываю его с выходом из Excel. В следующий раз файл открывается в Excel 2007 без ошибок. Но на других ПК, где такой процедуры проделано не было, все также появляется ошибка. Получается, что нужно каждый ПК настраивать. Может есть какой-нибудь механизм групповой политики, позволяющий распространить изменения на все ПК одновременно?
Не работает ЧИСТРАБДНИ в Excel 2007
 
Такая вот "засада"
Не работает ЧИСТРАБДНИ в Excel 2007
 
The_Prist  
antal10  
именно так и сделал, заменил ЧИСТРАБДНИ на ЧИСТРАБДНИ. На одном ПК все стало работать, на остальных нет. Дистрибутив один и тот же, настройки - только пакет анализа подключил. Все одинаково. Может еще есть что-то? в ОС?
Не работает ЧИСТРАБДНИ в Excel 2007
 
PS. Если поставить курсор в строку формул и нажать Enter, то ошибка в ячейке исчезает и формула работает нормально. Но это условие не распространяется на все ячейки. Нужно отдельно заходить в каждую ячейку. А условие должно было бы распространить свое действие на все ячейки.
Не работает ЧИСТРАБДНИ в Excel 2007
 
Уважаемые форумчане.  
Подскажите, пожалуйста, как настроить Excel 2007  
У меня в Excel 2003 формула ЧИСТРАБДНИ работает нормально. Пакет анализа включен.  
При открытии того же файла в Excel 2007 формула ЧИСТРАБДНИ выдает в ячейке #ИМЯ?. Пакет анализа включен.  
 
Попробовал заново создать вычисление с формулой ЧИСТРАБДНИ в самом Excel 2007 - заработало. Но тогда придется везде в файле, созданном в 2003 пересоздавать формулу  ЧИСТРАБДНИ.  
При этом заметил следующее. В файле, созданном в 2007 и, открытом потом в 2003 - тоже появляется ошибка. Т.е. получается, что для 2003 и 2007 существуют свои условия создания формул? Есть ли способ сделать так, чтобы файл (с формулой ЧИСТРАБДНИ) 2003 нормально работал в 2007?
передать параметр запроса на обновление из Excel в Access
 
Уважаемые форумчане.  
Здесь (как мне понятно) написан запрос на SQL в модуле Excel. Текст запроса передается в Access вместе с параметром "kodDveri"  
 
А есть ли вариант управления из Excel сохраненным запросом, находящимся в Access?  
 
Или что Вы рекомендуете почитать по Command?
передать параметр запроса на обновление из Excel в Access
 
R Dmitry,  
Serge 007  
 
Спасибо!!!
передать параметр запроса на обновление из Excel в Access
 
Параметр значение столбца КодДвери
передать параметр запроса на обновление из Excel в Access
 
Уважаемые форумчане.  
Подскажите, пожалуйста, как передать параметр из Excel в запрос на обновление Access?
Замена в имени столбца буквы на цифру
 
Спасибо всем за помощь!
Замена в имени столбца буквы на цифру
 
Спасибо:)
Замена в имени столбца буквы на цифру
 
Уважаемые форумчане.  
При замене в выражении ws.Range("A2") буквенного значения A на цифру или на значение переменной c - ws.Range("c & 2") программа выдает ошибку.    
Добавил указание на именование столбцов цифрами Application.ReferenceStyle = xlR1C1.  
Но ошибка все равно осталась.  
Произвел замену на  
ws.Range(ws.Cells(1, c), ws.Cells(1, c)). Получилась достаточно длинная запись.    
Подскажите, пожалуйста, а есть ли еще способ заменить букву, обозначающую столбец диапазона на цифру или на значение переменной?
Передача данных из recordset
 
Да, поняли меня правильно. Пробовал. Только не очень красиво получается. Может есть у rs какие-нибудь свойства или что-то другое?
Передача данных из recordset
 
Уважаемые форумчане.  
Прошу Вас помочь разобраться со следующей ситуацией.  
1 Передаем на лист из recordset данные.  
Получаем таблицу  
   
Исполнитель  
Иванов  
Петров  
Сидоров  
Иванов  
Петров  
 
2. Ставим в Excel фильтр по фамилии Сидоров, получаем видимую строку  
Исполнитель  
Сидоров  
 
обновляем recordset, фамилия Сидоров заменяется на фамилию Иванов  
Исполнитель  
Иванов  
 
Т.е. данные из recordset вставляются в первую отфильтрованную строку, а надо во вторую строку листа (ячейку “J2”). Так чтобы при включенном фильтре построчно обновились данные Иванов на Иванов, Петров на Петров, Сидоров на Сидоров. Чтобы строка с фамилией Сидоров осталась без изменений. Как это сделать?  
 
Sub pr()  
 
Dim cn As New ADODB.Connection  
   Dim cm As New ADODB.Command  
   Dim rs As New ADODB.Recordset  
   Dim fldLoop As Field  
Dim i As Integer  
Dim ws As Worksheet  
Set ws = Sheets(1)  
       Application.ScreenUpdating = False  
       Application.Calculation = xlCalculationManual  
 
   cn.Provider = "Microsoft.Jet.OLEDB.4.0"  
   cn.ConnectionString = "Data Source = D:\Книга3; Extended Properties=Excel 8.0;"""  
   cn.Open  
   cm.ActiveConnection = cn  
    cm.CommandText = "SELECT Исполнитель FROM [Лист1$]"
   rs.Open cm  
Do While Not rs.EOF  
           rs.MoveNext  
ws.Range("J" & 2).CopyFromRecordset rs  
         
       Loop  
 
   rs.Close  
   cn.Close  
       Application.Calculation = xlAutomatic  
       Application.ScreenUpdating = True  
End Sub
Получить адрес ячейки до нажатия Enter
 
Юрий М  
Число сообщений: 14748  
 
The_Prist  
Число сообщений: 11177  
 
Ура! Спасибо Вам за помощь!!!  
 
С уважением, ТС
Получить адрес ячейки до нажатия Enter
 
как это прописать? Открытие книги - это событие,  
Worksheet_SelectionChange - тоже событие. Непонятно как их сложить
Получить адрес ячейки до нажатия Enter
 
{quote}{login=Hugo}{date=23.08.2011 06:25}{thema=}{post}Да, при открытии книги и при активации листа заносить в а адрес активной ячейки.{/post}{/quote}  
Так в том и вопрос - как это реализовать?
Получить адрес ячейки до нажатия Enter
 
ЮрийМ, с Вашим доводом согласен, показал A1.  
Но мне нужно получить адрес ячейки A1 после нажатия на клавишу и перехода курсора на А2.
Получить адрес ячейки до нажатия Enter
 
Здесь курсор после нажатия Enter перешел на A2. А нужно получить адрес A1
Страницы: 1 2 3 След.
Наверх