Конечно это тут не особо в тему, но блин не знаю куда его запостить, короче сабж: есть макрос в Экселе, есть TextBox, в TextBox вводится дата, НО она вводится в виде 100208 , мне нужно, чтобы в ячейку прописалось значение не 100208, а значение вида "10 августа 2008 г". как это преобразовать? ПС ставлю формат ячейки ДАТА (необходимого мне вида), вставляю туда значение вида 10.02.2008 , не хочет гнида преобразовывать в необходимый мне вид, так и оставляет в виде 10.02.2008 Подскажите, кто знает как
Ячейка и так в таком формате/// я думаю, что тут загвоздка в том, что я явно присваиваю ячейке значение , т/е : data="10.02.2008" ActiveSheet.Range("F5")= data при вводе того же значения вручную, происходит изменение данных на необходимый мне формат, мне же нужно, чтобы это происходило программно, как в VBA имитировать нажатие клавиш пользователем?
так тож не выходит? Самому негде потестить data="10.02.2008" ActiveSheet.Range("F5")= data Sheet.Cells(5,6).NumberFormat = "[$-FC19]dd mmmm yyyy г.;@"
Нашёл офис) Вот, что у меня получилось 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).......
Вот код всего макроса, в нем один CommandButton и Textbox Он берет имена последнего и предпоследнего листов, копирует Активный лист, меняет в нем ссылки на лист с которого был скопирован, и в необходимую мне ячейку записывает дату, которая вводится в Textbox и имеет вид типа "100208" (Сраная ежедневная отчетность) Code: 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 И весь прикол в том, что я не могу явно прописывать адреса листов/книг, так как этот же макрос всуну еще в пару документов, и необходимо что бы он был более-менее универсален