Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |

28.11.2008, 11:25
|
|
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
Провел на форуме: 4512757
Репутация:
973
|
|
VBA Excel
Конечно это тут не особо в тему, но блин не знаю куда его запостить, короче сабж: есть макрос в Экселе, есть TextBox, в TextBox вводится дата, НО она вводится в виде 100208 , мне нужно, чтобы в ячейку прописалось значение не 100208, а значение вида "10 августа 2008 г". как это преобразовать?
ПС ставлю формат ячейки ДАТА (необходимого мне вида), вставляю туда значение вида 10.02.2008 , не хочет гнида преобразовывать в необходимый мне вид, так и оставляет в виде 10.02.2008
Подскажите, кто знает как
|
|
|

28.11.2008, 11:42
|
|
Участник форума
Регистрация: 15.11.2006
Сообщений: 259
Провел на форуме: 2589211
Репутация:
151
|
|
Ну попробуй сделать ячейке NumberFormat = "[$-FC19]dd mmmm yyyy г.;@"
|
|
|

28.11.2008, 11:47
|
|
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
Провел на форуме: 4512757
Репутация:
973
|
|
Ячейка и так в таком формате/// я думаю, что тут загвоздка в том, что я явно присваиваю ячейке значение , т/е :
data="10.02.2008"
ActiveSheet.Range("F5")= data
при вводе того же значения вручную, происходит изменение данных на необходимый мне формат, мне же нужно, чтобы это происходило программно, как в VBA имитировать нажатие клавиш пользователем?
|
|
|

28.11.2008, 11:55
|
|
Участник форума
Регистрация: 15.11.2006
Сообщений: 259
Провел на форуме: 2589211
Репутация:
151
|
|
так тож не выходит? Самому негде потестить
data="10.02.2008"
ActiveSheet.Range("F5")= data
Sheet.Cells(5,6).NumberFormat = "[$-FC19]dd mmmm yyyy г.;@"
|
|
|

28.11.2008, 12:05
|
|
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
Провел на форуме: 4512757
Репутация:
973
|
|
таки запустил, но блин не хочет переводить 
Последний раз редактировалось login999; 28.11.2008 в 12:08..
|
|
|

28.11.2008, 12:35
|
|
Участник форума
Регистрация: 15.11.2006
Сообщений: 259
Провел на форуме: 2589211
Репутация:
151
|
|
Нашёл офис)
Вот, что у меня получилось
Sub Macro1()
Dim data As Date
data = "10.10.2008"
Worksheets(1).Cells(1, 1).FormulaR1C1 = data
Worksheets(1).Cells(1, 1).NumberFormat = "[$-FC19]dd mmmm yyyy г.;@"
End Sub
Object required он тебе выкидывал, видимо, из-за того, что не был указал лист, на котором сие действо происходит. В принципе, можно ещё и книгу указать. Что-нить типо ActiveWorkbook.Worksheets(1).Cells(1, 1).......
Последний раз редактировалось FindeR; 28.11.2008 в 12:37..
|
|
|

28.11.2008, 12:53
|
|
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
Провел на форуме: 4512757
Репутация:
973
|
|
Вот код всего макроса, в нем один CommandButton и Textbox
Он берет имена последнего и предпоследнего листов, копирует Активный лист, меняет в нем ссылки на лист с которого был скопирован, и в необходимую мне ячейку записывает дату, которая вводится в Textbox и имеет вид типа "100208" (Сраная ежедневная отчетность)
Код:
Private Sub CommandButton1_Click()
lst_wrk_sht = Worksheets(Worksheets.Count - 1).Name
actv_sht_nm = ActiveSheet.Name
ActiveSheet.Copy After:=ActiveSheet
ActiveSheet.Name = TextBox1.Text
ActiveSheet.Cells.Replace lst_wrk_sht, actv_sht_nm
actv_sht_nm = ActiveSheet.Name
year_sh = CStr(Right(actv_sht_nm, 2))
day_sh = CStr(Left(actv_sht_nm, 2))
If CStr(Left(day_sh, 1)) = 0 Then: day_sh = CStr(Right(day_sh, 1))
tmp_mnth_str = CStr(Left(actv_sht_nm, 4))
month_sh = CStr(Right(tmp_mnth_str, 2))
Dim data As Date
data = CStr(day_sh + "." + month_sh + "." + "20" + year_sh)
ActiveSheet.Range("F5").FormulaR1C1 = data
ActiveSheet.Range("F5").NumberFormat = "[$-FC22]dd mmmm yyyy ð.;@"
End Sub
И весь прикол в том, что я не могу явно прописывать адреса листов/книг, так как этот же макрос всуну еще в пару документов, и необходимо что бы он был более-менее универсален 
Последний раз редактировалось login999; 28.11.2008 в 12:56..
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|