Форум программистов, компьютерный форум, киберфорум
Наши страницы

VBA

Войти
Регистрация
Восстановить пароль
 
Ципихович Эндрю
1361 / 319 / 16
Регистрация: 10.04.2009
Сообщений: 4,950
#1

Long из двух String - VBA

09.06.2017, 13:48. Просмотров 267. Ответов 12
Метки нет (Все метки)

здравствуйте, делаю так:
Visual Basic
1
ЦенаLong = (Trim(y(b - 2))) & "," & (Trim(y(b)))
где (Trim(y(b - 2))) = 33, а (Trim(y(b))) = 14, пытаюсь получить 33,14 - получаю облом, как нужно? спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2017, 13:48
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Long из двух String (VBA):

Как объявить переменные, которые далеко не String, Long и т.д - VBA
Здравствуйте, перебираю старые поделки Set Объект_таблица_строка_ячейка_в_документе = ActiveDocument.Tables(1).Rows(1).Cells(2).Range ...

LongPtr и Long: не игнорируется модуль - VBA
*LongPtr и Long: игнорируется модуль Здравствуйте. Есть модуль. На моём компьютере x64. Он работает только если везде стоит Long. В...

Привести тип массива Variant к Long - VBA
Как массив Variant привести к типу, например Long? Ниже приведен показательный примерчик, где это может понадобится. Скажу сразу,...

Перевод из String в long long - C++
Мне нужна функция для перевода из String в long long.Функция atoi(const char* str) работает только с констатным масивом символов а мне...

Преобразование string в long (String из сокета) - C#
Здравствуйте, пакетом приходит число, хочу это число преобразовать к типу long. int bytesRead; string returnstr; bytesRead =...

Из String в Long - C#
Почему когда я передаю 12-ти значное число из String в Long, оно обрезается до int? String num1 = "380456789012"; //12 чисел Long...

12
SoftIce
comment ca va
10401 / 3900 / 997
Регистрация: 27.07.2011
Сообщений: 9,444
Завершенные тесты: 1
09.06.2017, 14:19 #2
Почему Long ? Должно быть Single или Double

Visual Basic
1
Цена_Sng =val( (Trim(y(b - 2))) & "." & (Trim(y(b))))
или
Visual Basic
1
Цена_Sng = csng((Trim(y(b - 2))) & "," & (Trim(y(b))))
1
Hugo121
6182 / 2301 / 385
Регистрация: 19.10.2012
Сообщений: 6,844
09.06.2017, 14:23 #3
А Вы попытайтесь получить 33.14
Только ЦенаLong задайте нужный тип

Добавлено через 1 минуту
Прекрасно работает:
Visual Basic
1
2
Dim x As Double
x = "33" & "." & "14"
1
SoftIce
09.06.2017, 14:25
  #4

Не по теме:

Option Strict на вас нет.

0
Alex77755
10685 / 3260 / 538
Регистрация: 13.02.2009
Сообщений: 9,615
09.06.2017, 14:30 #5
Должно быть Single или Double
Отнюдь!
Ни одно из них! Корректней всего специальный тип! Currency

Добавлено через 2 минуты
Этот тип, кстати, часто работает корректней чем округлённый дабл
1
Ципихович Эндрю
1361 / 319 / 16
Регистрация: 10.04.2009
Сообщений: 4,950
09.06.2017, 16:05  [ТС] #6
не взлетело:
Visual Basic
1
2
3
Debug.Print (Trim(y(b - 3)))
                Debug.Print (Trim(y(b - 1)))
                Ущерб_одной_строкиCurrency = (Trim(y(b - 3))) & "." & (Trim(y(b - 1)))
Debug.Print (Trim(y(b - 3))) = 191
Debug.Print (Trim(y(b - 1))) = 50
0
Alex77755
10685 / 3260 / 538
Регистрация: 13.02.2009
Сообщений: 9,615
09.06.2017, 16:52 #7
а с какого перепугу должно было взлететь?
что есть объявление переменных?
есть преобразование?
0
Ципихович Эндрю
1361 / 319 / 16
Регистрация: 10.04.2009
Сообщений: 4,950
09.06.2017, 17:10  [ТС] #8
Ущерб_одной_строкиCurrency - Currency, остальные стринговые
Цитата Сообщение от Alex77755 Посмотреть сообщение
есть преобразование?
это как делается?
0
Alex77755
10685 / 3260 / 538
Регистрация: 13.02.2009
Сообщений: 9,615
09.06.2017, 17:19 #9
1. Option Explicit
2. объявление типов данных
3. преобразование! в гугле забанили? в украине живешь?
http://www.programm-school.ru/function_decode_type_vba.html
0
Вложения
Тип файла: doc Типы данных.doc (40.0 Кб, 1 просмотров)
SoftIce
09.06.2017, 17:33
  #10

Не по теме:

Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
это как делается?
8 лет на форуме прошли зря

0
Ципихович Эндрю
1361 / 319 / 16
Регистрация: 10.04.2009
Сообщений: 4,950
10.06.2017, 10:02  [ТС] #11
спасибо, всё равно не склеивается...
Visual Basic
1
2
3
4
5
6
7
8
9
If IsNumeric(Trim(y(b - 3))) And IsNumeric(Trim(y(b - 1))) Then
                    Рубли = CLng(Trim(y(b - 3)))
                    Копейки = CLng(Trim(y(b - 1)))
                    Debug.Print Рубли
                    Debug.Print Копейки
                    'склеиваем рубли и копейки, третье слово с конца и предпоследнее слово, разделителем является точка
                    Ущерб_одной_строкиCurrency = Рубли & "." & Копейки
                    Debug.Print Ущерб_одной_строкиCurrency
End If
Добавлено через 1 час 22 минуты
Цитата Сообщение от Hugo121 Посмотреть сообщение
Dim x As Double
x = "33" & "." & "14"
в ВБА не работает

Добавлено через 51 секунду
вау, так:
Visual Basic
1
2
Dim x As Double
x = "33" & "," & "14"
работает
0
Hugo121
6182 / 2301 / 385
Регистрация: 19.10.2012
Сообщений: 6,844
10.06.2017, 21:49 #12
Цитата Сообщение от Ципихович Эндрю Посмотреть сообщение
в ВБА не работает
- Вам сколько лет? Молодёжь так бескомпромиссна, и всегда всё знает лучше всех...
У меня вот на работе работает, а дома отдыхает. Всё как положено
Никто кстати не в курсе, где в Вин10 настраиваются эти разделители? Или тут играет роль что выставлено в Экселе? Как-то ранее не вникал, обычно делал универсально:
Visual Basic
1
2
3
4
    Dim x As Double, sep As String
    sep = Mid(1 / 2, 2, 1)
 
    x = "33" & sep & "14"
1
pashulka
2326 / 1158 / 467
Регистрация: 01.12.2010
Сообщений: 2,383
10.06.2017, 22:01 #13
Типо универсально, ибо для функции Val разделитель всегда точка .

Visual Basic
1
2
3
t1 = "33"
t2 = "14"
n = Val(t1 & "." & t2)
1
10.06.2017, 22:01
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.06.2017, 22:01
Привет! Вот еще темы с ответами:

Long To String - C++ Builder
Как в C++ Builder преобразовать переменную типа long в string?

Не понятный undefined reference to `unsigned long long f<unsigned long long, void> - C++
test.cpp: #include &lt;iostream&gt; template &lt;typename FormalType, typename FactType = typename std::enable_if&lt;std::is_same&lt;FormalType,...

Несовместимость типов String to Long - C#
Уважаемые подскажите пожалуйста как исправить несовместимость типов. В дельфи было проще :) StrToInt или IntToStr, но тут увы я не знаю....

.NET 4.x Как преобразовать string в long? - C#
Всем доброго дня! В коде получаю текущее Unix время long epoch = (DateTime.Now.ToUniversalTime().Ticks - 621355968000000000) /...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru