1. login999

    login999 Elder - Старейшина

    Joined:
    12 Jun 2008
    Messages:
    491
    Likes Received:
    280
    Reputations:
    92
    Конечно это тут не особо в тему, но блин не знаю куда его запостить, короче сабж: есть макрос в Экселе, есть TextBox, в TextBox вводится дата, НО она вводится в виде 100208 , мне нужно, чтобы в ячейку прописалось значение не 100208, а значение вида "10 августа 2008 г". как это преобразовать?
    ПС ставлю формат ячейки ДАТА (необходимого мне вида), вставляю туда значение вида 10.02.2008 , не хочет гнида преобразовывать в необходимый мне вид, так и оставляет в виде 10.02.2008
    Подскажите, кто знает как
     
  2. FindeR

    FindeR Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    Ну попробуй сделать ячейке NumberFormat = "[$-FC19]dd mmmm yyyy г.;@"
     
    1 person likes this.
  3. login999

    login999 Elder - Старейшина

    Joined:
    12 Jun 2008
    Messages:
    491
    Likes Received:
    280
    Reputations:
    92
    Ячейка и так в таком формате/// я думаю, что тут загвоздка в том, что я явно присваиваю ячейке значение , т/е :
    data="10.02.2008"
    ActiveSheet.Range("F5")= data
    при вводе того же значения вручную, происходит изменение данных на необходимый мне формат, мне же нужно, чтобы это происходило программно, как в VBA имитировать нажатие клавиш пользователем?
     
  4. FindeR

    FindeR Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    так тож не выходит? Самому негде потестить

    data="10.02.2008"
    ActiveSheet.Range("F5")= data
    Sheet.Cells(5,6).NumberFormat = "[$-FC19]dd mmmm yyyy г.;@"
     
    1 person likes this.
  5. login999

    login999 Elder - Старейшина

    Joined:
    12 Jun 2008
    Messages:
    491
    Likes Received:
    280
    Reputations:
    92
    таки запустил, но блин не хочет переводить :(
     
    #5 login999, 28 Nov 2008
    Last edited: 28 Nov 2008
  6. FindeR

    FindeR Elder - Старейшина

    Joined:
    15 Nov 2006
    Messages:
    623
    Likes Received:
    138
    Reputations:
    20
    Нашёл офис)
    Вот, что у меня получилось

    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).......
     
    #6 FindeR, 28 Nov 2008
    Last edited: 28 Nov 2008
    1 person likes this.
  7. login999

    login999 Elder - Старейшина

    Joined:
    12 Jun 2008
    Messages:
    491
    Likes Received:
    280
    Reputations:
    92
    Вот код всего макроса, в нем один 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
    
    И весь прикол в том, что я не могу явно прописывать адреса листов/книг, так как этот же макрос всуну еще в пару документов, и необходимо что бы он был более-менее универсален :)
     
    #7 login999, 28 Nov 2008
    Last edited: 28 Nov 2008