Страница: 1 |
Вопрос: Формула с числами. | Добавлено: 15.07.08 10:25 |
Автор вопроса: ![]() |
Вопрос такой: В первой ячейке A1 находится число. Во второй ячейке A2 тоже число. Как сделать так, чтобы в третьей была ФОРМУЛА числа, через сумму двух чисел.
Т.е. 18, 20 =18+20 и притом отображалось 38, но по формуле именно =18 + 20. Вот как я сделал, но это не работает, если если числа не целые(( почему-то не хочет распозновать точку, а в строке Stringall присваивает запятую, как разделитель. Как это исправить? For l = 1 To m Str1 = Cells(l + 1, 1) Str2 = Cells(l + 1, 2) StringAll = "=" & Str1 & "+" & Str2 'в следующей строке выдает ошибку, если числа не целые Cells(l + 1, 3) = StringAll Next l |
Ответы | Всего ответов: 15 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 27 Ответов: 68 |
Профиль | Цитата | #1 | Добавлено: 15.07.08 11:02 |
Что-то я плохо подумал)) оказалось все просто:
Sub lom() m = 3 For l = 1 To m Str1 = Cells(l + 1, 1) Str2 = Cells(l + 1, 2) Str1 = Replace(Str1, ",", "." ![]() Str2 = Replace(Str2, ",", "." ![]() StringAll = "=" & Str1 & "+" & Str2 Cells(l + 1, 3) = StringAll Next l End Sub |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Администратор ICQ: 278109632 Вопросов: 42 Ответов: 3949 |
Web-сайт: Профиль | Цитата | #2 | Добавлено: 15.07.08 13:17 |
Плохо подумал, да. На некоторых виндах десятичным разделителем является запятая, и этот код работать тоже не будет ![]() |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 27 Ответов: 68 |
Профиль | Цитата | #3 | Добавлено: 15.07.08 13:40 |
мдя. это я действительно плохо подумал) блин и как же быть? можно программно поставить разделителем десятичной части точку? |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: ненавижу Вопросов: 40 Ответов: 477 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 15.07.08 13:47 |
Разделитель кажись устанавливается в настройках 'Панель управления' - 'Дата, время, язык и региональные стандарты', Следовательно он есть в реестре. |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 27 Ответов: 68 |
Профиль | Цитата | #5 | Добавлено: 15.07.08 15:01 |
Да это понятно. Только с реестром программно я не работал не разу) и боюсь))
Ну если вдруг на другом компе будет, то ведь можно типо сообщения написать: "Внимание! Проследите, чтобы разделителем была точка!" ))) ну а там Да/Нет. Если нет, то выход.... ну или как-то так... |
Номер ответа: 6 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 23 Ответов: 417 |
Профиль | Цитата | #6 | Добавлено: 15.07.08 15:11 |
Попробуй вот так: DateDelimiter = Mid$(Format(Date, "General Date"
![]() TimeDelimiter = Mid$(Format(0.5, "Long Time" ![]() DecimalDelimiter = Mid$(Format(1.1, "General Number" ![]() |
Номер ответа: 7 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 23 Ответов: 417 |
Профиль | Цитата | #7 | Добавлено: 15.07.08 15:14 |
А еще можно так: A = Application.International(xlDateSeparator)
MsgBox "The date separator is " & A A = Application.International(xlTimeSeparator) MsgBox "The time separator is " & A A = Application.International(xlDecimalSeparator) MsgBox "The decimal separator is " & A Очень удобно. ![]() ![]() |
Номер ответа: 8 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Администратор ICQ: 278109632 Вопросов: 42 Ответов: 3949 |
Web-сайт: Профиль | Цитата | #8 | Добавлено: 16.07.08 01:16 |
Кто-то делал еще проще. Кажется ЮЮ.
Вроде так: delimiter = Format$(","
![]() щас не могу проверить - нет ВБ. на форуме было месяц назад. |
Номер ответа: 9 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 23 Ответов: 417 |
Профиль | Цитата | #9 | Добавлено: 16.07.08 06:06 |
Согласна, но это получается как переменная. А я читаю системные настройки разделителей. ![]() |
Номер ответа: 10 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Вопросов: 27 Ответов: 68 |
Профиль | Цитата | #10 | Добавлено: 16.07.08 10:11 |
Как я понимаю, Jasmin предложила узнать разделитель.. а можно ли его как-нить подправить/поставить другой из макроса? |
Номер ответа: 11 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Администратор ICQ: 278109632 Вопросов: 42 Ответов: 3949 |
Web-сайт: Профиль | Цитата | #11 | Добавлено: 16.07.08 10:36 |
А зачем? ![]() |
Номер ответа: 12 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 23 Ответов: 417 |
Профиль | Цитата | #12 | Добавлено: 16.07.08 12:13 |
Где-то я видела, что можно. Не помню где. ![]() |
Номер ответа: 13 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ICQ: ненавижу Вопросов: 40 Ответов: 477 |
Web-сайт: Профиль | Цитата | #13 | Добавлено: 16.07.08 12:40 |
это считается "дурным тоном"
Наверное так и есть, но например я не знаток правил хорошего тона и точно изменил бы настройки если они мне не нравятся. В дробях принята запятая, так пусть и будет запятая, помоему это правильно. |
Номер ответа: 14 Автор ответа: ![]() ![]() ![]() ![]() ![]() Вопросов: 23 Ответов: 417 |
Профиль | Цитата | #14 | Добавлено: 16.07.08 13:48 |
Я тоже не знаток. Но там наверно имели ввиду ситуацию, когда в начале программы поменяли разделитель, отработали и закрылись. А разделитель так и остался поменянным. И другие проги ориентируясь именно на системные настройки "вдруг" перестают работать. Поэтому (лично я) предпочитаю обрабатывать в программе, чем менять настройки. ![]() |
Номер ответа: 15 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Администратор ICQ: 278109632 Вопросов: 42 Ответов: 3949 |
Web-сайт: Профиль | Цитата | #15 | Добавлено: 16.07.08 13:52 |
Jasmin права. Системные настройки должны менять системные программы. А мы должны обрабатывать все самостоятельно, на то мы и программисты. |
Страница: 1 |
|