Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Работает в оффисе ХП и не работает в 97

3.7K
12 января 2005 года
blind7
56 / / 12.01.2005
Написал процедуру, под хп всё работает, попробовал под 97 (это конечный оффис для которого писалась процедура), а она не пашет, в чём причина не могу понять потому как тока начинаю изучать язык.

Private Sub cmdOk_Click()
Dim n As Integer
n = Range("A6").CurrentRegion.Rows.Count + 0
Cells(n, 8).Value = txtBegin.Text
End Sub

ругаеться на "Cells(n, 8).Value = txtBegin.Text"
говорит невозможно получить свойство CurrentRegion класса

Может можно что то исправить?
Изначально есть форма с календарём в нём вводиться дата и эта дата подставляеться в определённую ячейку

Вернее вопрос в том как подставить данные из формы в конкретную ячейку например H6
258
12 января 2005 года
SergeySV
1.5K / / 19.03.2003
Скорей всего ругается именно на .CurrentRegion.Rows, а не Cells

А к ячекам можно обращатся по разному, .CurrentRegion тебе не понадобится если надо обратиться к одной определенной ячейке.

Worksheets("Sheet1").Cells(5, 3).Value = "dfsdf"
Worksheets("Sheet1").Range("A1").Value = "sdfsd"
Worksheets("Sheet1").Range("A" & 1).Value = "sdfsd"
Worksheets("Sheet1").Range(Worksheets("Sheet1").Cell(3,4)).Value = "sdfsd"

или если диапазон:
Worksheets("Sheet1").Range("A1:B3").Value = "sdfsd"
Worksheets("Sheet1").Range(Worksheets("Sheet1").Cell(1,1), Worksheets("Sheet1").Cell(3,4)).Value = "sdfsd"

ну и т.д.

Строку и столбец ячейки можно узнать:
ActiveCell.Row
ActiveCell.Column
3.7K
12 января 2005 года
blind7
56 / / 12.01.2005
Сенкю, с этим теперь быстро справился, попадание в ячейку на 10 балов.

Но появился ещё вопрос, из элемента управления календарь получаю дату но она отражается в формате 12,01,05. Можно ли это исправить на удобоваримую дату (12 январь 2005 или лучше 12 января 2005). Форматирование ячейки никчему не приводит...
258
12 января 2005 года
SergeySV
1.5K / / 19.03.2003
Форматирование не помогает, потому что Excel не понимает что 12,04,05 это дата, и считает что это текст.

Самый простой способ, это сувать ячейке (.Value) переменную типа Date, тогда точно никаких разногласий не будет.
Dim d as Date
......
....Value = d

Но теперь как ты понимаешь все проблемы просто переносятся в другую плоскость. Теперь ты должен отследить, что бы твоей переменной d, присвоилось правильное значение.

Надо уточнить, какой тип возвращает твой календарь. Если календарь возвращает значение типа Date, тогда просто присваивай его свой переменной d, если значение передается ввиде текста, тогда придется заняться форматирование, потому что этот текст надо пихать в функцию CDate() или Format(), и для них текстовая строка должна быть оформлена соотв. образом
3.7K
12 января 2005 года
blind7
56 / / 12.01.2005
Глупый вопрос я понимаю, но знать бы как это делать, ведь обидно что в хп всё заработало а тут нехочет
405
12 января 2005 года
Dmitrii
554 / / 16.12.2004
Цитата:
Originally posted by blind7
Глупый вопрос я понимаю, но знать бы как это делать, ведь обидно что в хп всё заработало а тут нехочет



Вот пример кода на VBA для Excel:

Sub tst()
Dim myDate, myStr As String
myDate = "12,01,05"
myStr = Format(myDate, "dd mmm yyyy")
Worksheets(1).Cells(1, 1).Value = myStr
End Sub

3.7K
12 января 2005 года
blind7
56 / / 12.01.2005
Вах,огромное мерси методом головоломки получил форматирование в правильную дату и помещением её в нужную ячейку.

Ещё раз огромное мерси
258
12 января 2005 года
SergeySV
1.5K / / 19.03.2003
Цитата:
Originally posted by Dmitrii


Вот пример кода на VBA для Excel:

Sub tst()
Dim myDate, myStr As String
myDate = "12,01,05"
myStr = Format(myDate, "dd mmm yyyy")
Worksheets(1).Cells(1, 1).Value = myStr
End Sub


Да :roll:, любой разделитель проглатывает, токо если подряд "120105" не понимает

3.7K
12 января 2005 года
blind7
56 / / 12.01.2005
ВАх, уже даже эксперементирую, добавил в форматирование года с точкой)))
275
12 января 2005 года
pashulka
985 / / 19.09.2004
To Blind7

Несмотря на то, что Вы свои вопросы решили, я только что проверил все Ваши примеры на MS Excel 97 и у меня всё работает :

- и CurrentRegion не вызывает ошибку, хотя он действительно не нужен.
- и значение в ячейке "A1" (пример) является датой в формате ДД.ММ.ГГГГ, после инструкции [A1] = Calendar1.Value

Может поделитесь с коллегами образцом для вивисекции ???
3.7K
13 января 2005 года
blind7
56 / / 12.01.2005
Образцом простите чего?
Просто вопросы были одного рода теперь всё работает по отдельности, осталось всё слить в одну форму над чем собсно счас и страдаю.
275
13 января 2005 года
pashulka
985 / / 19.09.2004
Имеется ввиду конечно образец Вашего файла, где с Вашим MSForm происходят "мистические" вещи (см. выше)

P.S. Даже если Вы не собрали всё это вместе, то существуют отдельные части, например MSForm ...
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог