MsgBox 111& * 1000&
Вот так ее не будет :)
Вот так ее не будет :)
Спасибо |
---|
Mail: В профиле Skype: В профиле |
06.02.2012 19:59:24
MsgBox 111& * 1000&
Вот так ее не будет :)
|
|||
|
|
02.03.2012 12:44:41
строчки
Rows.Hidden = True Rows(2).Hidden = False убивают иксель (2003) у всех так?
Живи и дай жить..
|
|
|
|
02.03.2012 12:57:42
У меня нормально отработало. Раз 10 запустил - Ок.
Я сам - дурнее всякого примера! ...
|
|
|
|
02.03.2012 13:02:28
excel не убило, но видимость не востанавливает , вываливается с ошибкой, нельзя применить данный метод к объекту range
|
|||
|
|
02.03.2012 13:14:32
и не закрывает иксель
Живи и дай жить..
|
|
|
|
02.03.2012 13:15:02
{quote}{login=слэн}{date=04.02.2012 11:02}{thema=}{post}как активировать лист после вызова немодальной формы, чтобы сразу можно было вбивать данные в ячейку, не тыкая в нее мышой?{/post}{/quote}
Возможно уже нашли ответ на данный вопрос, но все равно предложу свое видение решения. см файл
Редко но метко ...
|
|
|
|
02.03.2012 13:16:27
да, тогда уже подсказали про appactivate
Живи и дай жить..
|
|
|
|
02.03.2012 13:17:40
а насчет пред задачи - rows(1).hidden=false нормально срабатывает
Живи и дай жить..
|
|
|
|
02.03.2012 13:22:07
Так у меня крутой Эксель:-) Работает без проблем.
Я сам - дурнее всякого примера! ...
|
|
|
|
02.03.2012 13:24:03
лицензионный? :)
Живи и дай жить..
|
|
|
|
02.03.2012 13:27:21
Какой там! :-) PreSP4, со встроенным конвертором. Тс-с-с...
75755
Я сам - дурнее всякого примера! ...
|
|
|
|
02.03.2012 13:37:38
Sub tt()
Rows.Hidden = True Rows(2).Hidden = False End Sub отрабатывает нормально, и ряд восстанавливает. Просто нужно чуть вверх лист промотать, чтоб увидеть :) XL2003. |
|
|
|
03.03.2012 00:21:51
У меня на строке Rows(2).Hidden = False вываливается ошибка. А после Excel не закрывается : )
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук |
|
|
|
03.03.2012 00:28:06
У меня всё ок, через Ф8 не выдает никаких ошибок и работает идеально (Excel2007)
Киса, я хочу Вас спросить, как художник — художника: Вы рисовать умеете?
|
|
|
|
16.03.2012 13:24:08
Обнаружил странное для меня преобразование текста в число на ВБА:
Вот пример продцедуры: Sub Test() Const s As String = "1,537" Debug.Print IsNumeric(s) & " - IsNumeric" Debug.Print Val(s) & " - Val" Debug.Print (1.537 = s) & " - 1.537 = s" Debug.Print s * 6 & " - s * 6" End Sub Вот результаты выполнения: True - IsNumeric 1 - Val True - 1.537 = s 9.222 - s * 6 Возникают вопросы: - функция IsNumeric(s) проверяет текстовую константу s и преобразуя ее в число дает ИСТИНУ тут кое как понятно - далее функция Val пытается преобразовать s в число, спотыкается на запятой (так как у меня сепаратор точка), и выдает 1, что тоже понятно - а вот при сравнении числа и текстовой константы 1.537 = s, получается ИСТИНА, что вызывает вопрос, каким все таки макаром строка так преобразовалась что из "1,537" получилось 1.537 при том что Val дает 1 ??? - опять же при умножении числа на текстовую константу "1,537"*6 дает математически правильный результат 9.222, хотя по идее должно давать 6 (Так как опять же Val("1,537")дает 1 Основной вопрос как ВБА преобразовывает текстовую константу содержащую запятую, и меняет ее на точку в моем случае ??
Редко но метко ...
|
|
|
|
16.03.2012 13:46:27
оно считает число главнее и преобразовывает строку в число, а уже числа сравнивает
Живи и дай жить..
|
|
|
|
16.03.2012 13:52:42
Вот именно преобразовывает, а как оно это делает?
Я имею ввиду, как ВБА понимает что запятая в текстовой константе является разделителем разрядов, если стандартный разделитель точка ?
Редко но метко ...
|
|
|
|
16.03.2012 13:59:01
так локаль у вас какая?
Живи и дай жить..
|
|
|
|
16.03.2012 14:02:00
рус
Редко но метко ...
|
|
|
|
16.03.2012 14:15:33
{quote}{login=GIG_ant}{date=16.03.2012 01:24}{thema=}{post}Основной вопрос как ВБА преобразовывает текстовую константу содержащую запятую, и меняет ее на точку в моем случае ??{/post}{/quote}
Ну, допустим, запускается какой-нибудь CDbl() Из справки: Функция Val распознает в качестве разделителя целой и дробной части только точку (.) >Я имею ввиду, как ВБА понимает что запятая в текстовой константе является разделителем разрядов, если стандартный разделитель точка? Какой то странный вопрос. Проверяется все это дело посимвольно, вероятно слева на право. Если символ - цифра, проверяется следующий; если запятая, следующий за ним. Если он оказывается цифрой и после него нет нецифровых символов вплоть до конца строки, то это число.
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук |
|
|
|
16.03.2012 14:27:38
Спрошу по другому:
При вот такой записи: "1)537"*9 вылетает ошибка а при такой: "1,537"*9 считает хотя разделитель дробной и целой части у меня ТОЧКА. Так вот я и не пойму как ВБА запятую понимает, а например скобку (или другой символ) не воспринимает, ведь по логике NERV-а должно бы разделить ). -= 93339 =- Ух ты, подфартило.
Редко но метко ...
|
|
|
|
16.03.2012 14:36:52
ну люди ж разные писали...
вот с val нам националист попался, а с неявными преобразованиями локаль учитывает
Живи и дай жить..
|
|
|
|
16.03.2012 14:49:03
{quote}{login=GIG_ant}{date=16.03.2012 02:27}{thema=}{post}ведь по логике NERV-а должно бы разделить ){/post}{/quote}
По логике nerv есть общепринятые разделители целой о дробной части числа, к коим скобка отношения не имеет. Можно еще спросить, почему с точкой в строке математика не считает: MsgBox "1,25" + 3 MsgBox "1.25" + 3 только имеет ли это смысл? Ведь как сказал слэн "люди ж разные писали".
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук |
|
|
|
16.03.2012 14:53:50
у меня считает и с точкой и запятой.
Редко но метко ...
|
|
|
|
16.03.2012 14:57:59
проэспериментировал:
в панели управления Windows, языки и стандарты поставл разделитель ")" теперь выражение Debug.Print "1)234"*2 дает резцльтат 2)468 Так что и скобка может быть разделителем :) |
|
|
|
16.03.2012 15:13:39
Для дат я определяю с помощью этой функции нужные форматы, так как с разделителями нарывался не один раз в VBA/
Function FormatDateUser(Optional TipeFormat As Long = 0) Const SReg = "HKEY_CURRENT_USER\Control Panel\International\" Dim FormatDate$, SepDate$, FormatTime$, SepTime$, aSepUs() FormatDate = CreateObject("WScript.Shell").RegRead(SReg & "sShortDate") SepDate = CreateObject("WScript.Shell").RegRead(SReg & "sDate") FormatTime = CreateObject("WScript.Shell").RegRead(SReg & "STimeFormat") SepTime = CreateObject("WScript.Shell").RegRead(SReg & "STime") aSepUs = Array(".", "\", "/", "-", ":") For i = 0 To UBound(aSepUs) FormatDate = Replace(FormatDate, aSepUs(i), SepDate) FormatTime = Replace(FormatTime, aSepUs(i), SepTime) Next Select Case TipeFormat Case 0: FormatDateUser = FormatDate & " " & FormatTime Case 1: FormatDateUser = FormatDate Case 2: FormatDateUser = FormatTime End Select End Function =============================== Там же можно считывать и разделитель целой и дробной части sDecimal SepDecimal = CreateObject("WScript.Shell").RegRead(SReg & "sDecimal") и уже исходя из результат оперировать данными в VBA
|
|||
|
|
16.03.2012 15:21:50
спасибо R Dmitry, в заначку ))
Редко но метко ...
|
|
|
|
16.03.2012 15:35:37
R Dmitry, а с регулярными выражениями не проще?)
Чебурашка стал символом олимпийских игр. А чего достиг ты?
Тишина - самый громкий звук |
|
|
|
16.03.2012 15:39:42
Nerv, а для чего они там?
У меня задача была определить системный формат дат для VBA
|
||||
|
|
|||