Работает в оффисе ХП и не работает в 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
А к ячекам можно обращатся по разному, .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
Но появился ещё вопрос, из элемента управления календарь получаю дату но она отражается в формате 12,01,05. Можно ли это исправить на удобоваримую дату (12 январь 2005 или лучше 12 января 2005). Форматирование ячейки никчему не приводит...
Самый простой способ, это сувать ячейке (.Value) переменную типа Date, тогда точно никаких разногласий не будет.
Dim d as Date
......
....Value = d
Но теперь как ты понимаешь все проблемы просто переносятся в другую плоскость. Теперь ты должен отследить, что бы твоей переменной d, присвоилось правильное значение.
Надо уточнить, какой тип возвращает твой календарь. Если календарь возвращает значение типа Date, тогда просто присваивай его свой переменной d, если значение передается ввиде текста, тогда придется заняться форматирование, потому что этот текст надо пихать в функцию CDate() или Format(), и для них текстовая строка должна быть оформлена соотв. образом
Глупый вопрос я понимаю, но знать бы как это делать, ведь обидно что в хп всё заработало а тут нехочет
Цитата:
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
Ещё раз огромное мерси
Цитата:
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
Вот пример кода на 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" не понимает
ВАх, уже даже эксперементирую, добавил в форматирование года с точкой)))
Несмотря на то, что Вы свои вопросы решили, я только что проверил все Ваши примеры на MS Excel 97 и у меня всё работает :
- и CurrentRegion не вызывает ошибку, хотя он действительно не нужен.
- и значение в ячейке "A1" (пример) является датой в формате ДД.ММ.ГГГГ, после инструкции [A1] = Calendar1.Value
Может поделитесь с коллегами образцом для вивисекции ???
Просто вопросы были одного рода теперь всё работает по отдельности, осталось всё слить в одну форму над чем собсно счас и страдаю.
P.S. Даже если Вы не собрали всё это вместе, то существуют отдельные части, например MSForm ...