Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Даты При сохранении отчетов 1С в эксель Добавлено: 21.11.11 12:29  

Автор вопроса:  KiZ
Приветствую.
Проблема следующая. При сохранении отчетов из 1с8 в эксель даты переносяться по формату дата+время. Далее, я пользую формулу разности дат, а она не работает. Приходиться заходить внутрь ячейки, ничего не править, но при нажатии Enter - чудом формула разности дат правиться, потому что правиться формат даты... вопрос: можно ли как-то написать макрос, который эмитирует вход в ячейку, потому что стирание-и присоение старого значения даже при изменении формата ячейки на "дату" - не срабатывает. т.е. дату-то она меняет, но формула разности не работает. Спасибо!

Ответить

  Ответы Всего ответов: 6  

Номер ответа: 1
Автор ответа:
 AxeL



ICQ: 264730390 

Вопросов: 2
Ответов: 106
 Профиль | | #1 Добавлено: 22.11.11 02:53
Примерно так:
  1. Range("A1").Select
  2. Application.SendKeys ("~")

Ответить

Номер ответа: 2
Автор ответа:
 KiZ



Вопросов: 27
Ответов: 68
 Профиль | | #2 Добавлено: 22.11.11 10:54
хм.. не помогает. Внутрь ячейки не заходит, и соответственно формат не меняеться.
p.s. Не верю, чтобы никто больше кроме меня не сталкивался с этим багом))

Ответить

Номер ответа: 3
Автор ответа:
 AxeL



ICQ: 264730390 

Вопросов: 2
Ответов: 106
 Профиль | | #3 Добавлено: 22.11.11 13:13
Код:
  1. Range("A1").Select
выделяет ячейку(в данном случае "A1";)
Код:
  1. pplication.SendKeys ("~")
Посылает нажатие(я) клавиш(и). В данном случае посылается "Enter".
Что значит "внутрь" ячейки не заходит? Объясни...

Кто мешает использовать DateValue("строка для преобразования";) для преобразования какой-то строки в формат даты?
Пример:
  1. DateValue("22,11,2011")


Кто мешает использовать Replace("исходное выражение", "строка для поиска", " строка для замены";)?
Пример:
  1. Replace("22,11,2011", ",", ".")

Ответить

Номер ответа: 4
Автор ответа:
 KiZ



Вопросов: 27
Ответов: 68
 Профиль | | #4 Добавлено: 22.11.11 14:53
это все я пробывал. мешает то, что если в одной ячейке ты сделал из даты+время строковыми функциями просто дату(удалив время). То формула разности дат на таких ячейках не работает. Даже, когда формат ячейки опять превращаешь обратно в "дату".

Ответить

Номер ответа: 5
Автор ответа:
 AxeL



ICQ: 264730390 

Вопросов: 2
Ответов: 106
 Профиль | | #5 Добавлено: 22.11.11 15:42
Что за бред... Попробуй так:
  1. MsgBox DateValue("22.11.2011") - DateValue("22.10.2010")

Ответить

Номер ответа: 6
Автор ответа:
 KiZ



Вопросов: 27
Ответов: 68
 Профиль | | #6 Добавлено: 22.11.11 15:58
Вот! Спасибо большое, если столбец дат поменять на такой как в макросе - то все формулы нормуль считаются!
  1. Sub res()
  2. i = 1
  3. While ThisWorkbook.Sheets(1).Cells(i, 1).Value <> ""
  4. ThisWorkbook.Sheets(1).Cells(i, 2).Value = DateValue(Left(ThisWorkbook.Sheets(1).Cells(i, 1).Value, 10))
  5. i = i + 1
  6. Wend
  7. End Sub

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам