ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

VBA Excel
  #1  
Старый 28.11.2008, 11:25
Аватар для login999
login999
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
Провел на форуме:
4512757

Репутация: 973


По умолчанию VBA Excel

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

  #2  
Старый 28.11.2008, 11:42
Аватар для FindeR
FindeR
Участник форума
Регистрация: 15.11.2006
Сообщений: 259
Провел на форуме:
2589211

Репутация: 151
По умолчанию

Ну попробуй сделать ячейке NumberFormat = "[$-FC19]dd mmmm yyyy г.;@"
 
Ответить с цитированием

  #3  
Старый 28.11.2008, 11:47
Аватар для login999
login999
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
Провел на форуме:
4512757

Репутация: 973


По умолчанию

Ячейка и так в таком формате/// я думаю, что тут загвоздка в том, что я явно присваиваю ячейке значение , т/е :
data="10.02.2008"
ActiveSheet.Range("F5")= data
при вводе того же значения вручную, происходит изменение данных на необходимый мне формат, мне же нужно, чтобы это происходило программно, как в VBA имитировать нажатие клавиш пользователем?
 
Ответить с цитированием

  #4  
Старый 28.11.2008, 11:55
Аватар для FindeR
FindeR
Участник форума
Регистрация: 15.11.2006
Сообщений: 259
Провел на форуме:
2589211

Репутация: 151
По умолчанию

так тож не выходит? Самому негде потестить

data="10.02.2008"
ActiveSheet.Range("F5")= data
Sheet.Cells(5,6).NumberFormat = "[$-FC19]dd mmmm yyyy г.;@"
 
Ответить с цитированием

  #5  
Старый 28.11.2008, 12:05
Аватар для login999
login999
Постоянный
Регистрация: 12.06.2008
Сообщений: 654
Провел на форуме:
4512757

Репутация: 973


По умолчанию

таки запустил, но блин не хочет переводить

Последний раз редактировалось login999; 28.11.2008 в 12:08..
 
Ответить с цитированием

  #6  
Старый 28.11.2008, 12:35
Аватар для FindeR
FindeR
Участник форума
Регистрация: 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..
 
Ответить с цитированием

  #7  
Старый 28.11.2008, 12:53
Аватар для login999
login999
Постоянный
Регистрация: 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..
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Баг в файле Excel -=lebed=- Soft - Windows 2 05.07.2006 08:43
В Microsoft Excel обнаружена ещё одна уязвимость Dracula4ever Мировые новости 4 21.06.2006 21:29
В Microsoft Excel найдена критическая дыра Dracula4ever Мировые новости 0 19.06.2006 16:32
Microsoft warns of Excel 0-day attack Dracula4ever Forum for discussion of ANTICHAT 0 17.06.2006 15:03
экспорт данных из Excel в 1с limpompo АнтиАдмин 0 12.04.2006 14:12



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ