Число сохранено как текст excel vba

 

peat

Пользователь

Сообщений: 119
Регистрация: 21.04.2013

#1

10.10.2013 23:08:47

Доброго времени суток!)
не закидывайте меня, тема избита, но ответа на свой вопрос я не нашел)

ситуация такая — тысячи ячеек с числами вида xy.z, а мне нужен разделитель запятая. делая замену — все хорошо. записываю замену макрорекодером, выполняю макрос — числа сохраняются, как текст о0
гугл дал вот такую хитрость:

Код
With Selection
 .NumberFormat = "#,##0.00"
 .Replace ",", "."
 .Formula = .Formula
End With

не могу попробовать в работе, но, скорее всего, будет пахать. вопрос — почему после выполнения макроса такая ошибка?
вы — гуру экселя, должны знать ответ на такой каверзный вопрос)

 

Watcher_1

Пользователь

Сообщений: 155
Регистрация: 03.08.2013

Мои координаты в профиле

У меня нормально конветит даже без .Replace «,», «.»

 

The_Prist

Пользователь

Сообщений: 14183
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

Потому что при замене из самого Excel — он пытается определить тип данных и преобразовать в верный на его взгляд тип. Если же замену делаете через VBA — то у VBA свои законы и он просто меняет данные, используя метод Excel-я. Никаких проверок типов в данном случае не происходит.
Если применяется формула из VBA, то Excel в любом случае участвует, когда вычисляет формулу. Поэтому преобразование типов так же будет происходить.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

peat

Пользователь

Сообщений: 119
Регистрация: 21.04.2013

вот это даа, вот это философский ответ) такого в литературе не прочтешь, наверное)

 

Слэн

Пользователь

Сообщений: 5192
Регистрация: 16.01.2013

философский — это насмешка, судя по смайлу :)

вот так у нас всегда, демократия, тоже ругательное слово, интеллигенция — еще пуще :)

но реально философия икселя такова, что если данные вводятся с клавиатуры, то нет возможности определить компетентность вводящего и применяются определенные методы проверки, а уж если человек дошел до использования макросов, то это что-нибудь  да значит, и проверять его уже надо меньше, он сам позаботится о правильности ввода.

 

peat

Пользователь

Сообщений: 119
Регистрация: 21.04.2013

нет, уважаемый Слэн, Вы не правы, это не насмешка, просто улыбка) я, как человек по профессии далекий от программирования, но ощущающий необходимость в его изучении, с уважением отношусь к вещам, которые высказывают гуру на этом сайте. вот сейчас пойду задам еще один вопрос в новой теме)

 

KuklP

Пользователь

Сообщений: 14868
Регистрация: 21.12.2012

E-mail и реквизиты в профиле.

Гы) Все дружно утерлись после peat. …  :D

Я сам — дурнее всякого примера! …

 

peat

Пользователь

Сообщений: 119
Регистрация: 21.04.2013

#8

30.10.2013 08:19:46

снова всем доброго времени суток, возникла необходимость поднять тему)

задача все та же — найти точки и заменить их на запятые. только вот чисел стало куда больше — 2 столбца по 100к значений. Вот такой вот нехитрый код

Код
With Range("M5:N" & LastRow)
    .Replace ".", ","
End With

For Each cell In Range("M5:N" & LastRow)
    cell.Formula = CDbl(cell.Formula)
Next cell

работает очень долго и, почему-то, вместо 23.456 получает 23 456, но вместо 0.0123 получает 0,0123)
Гуру, подскажите, как лучше сделать этот код? или вообще бросить затею и обязать пользователя делать замену вручную?

 

Слэн

Пользователь

Сообщений: 5192
Регистрация: 16.01.2013

пример данных небольшой можно?

 

peat

Пользователь

Сообщений: 119
Регистрация: 21.04.2013

Слэн
пожалуйста)

там около 5к значений, чтобы влезло на сайт. в реальности там по 150к значений)конечно, не все они нужны, нужно сделать выборку из них, с которой в дальнейшем и работать. может быть, есть какой-то способ замены в массиве? например, взять из этих 150к каждое 5ое число,занести в массив, там изменить, и добавить на график?

Прикрепленные файлы

  • 123.xlsx (97.65 КБ)

 

Слэн

Пользователь

Сообщений: 5192
Регистрация: 16.01.2013

#11

30.10.2013 09:09:10

Код
Sub q()
Dim ar
ar = [a1].CurrentRegion
'Columns("d:e").NumberFormat = "##0.000"
[g1].Resize(UBound(ar), 2) = ar
End Sub

Живи и дай жить..

 

Слэн

Пользователь

Сообщений: 5192
Регистрация: 16.01.2013

на 150 тыс отработало секунды за 3 на моем небыстром

 

Hugo

Пользователь

Сообщений: 23257
Регистрация: 22.12.2012

#13

30.10.2013 10:12:53

Такой стандартный и понятный вариант:

Код
Sub Macro1()
    Columns("A:A").TextToColumns Destination:=Range("A1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 1), TrailingMinusNumbers:=True
    Columns("B:B").TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, _
        TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
        Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
        :=Array(1, 1), TrailingMinusNumbers:=True
End Sub

Почти ничего не менял в записи рекордера — хотя очевидно есть что сократить.
До например такого:

Код
Sub Macro2()
    Columns("A:A").TextToColumns Destination:=Range("A1")
    Columns("B:B").TextToColumns Destination:=Range("B1")
End Sub

или даже

Код
Sub Macro2()
    Columns(1).TextToColumns [a1]
    Columns(2).TextToColumns [b1]
End Sub

Изменено: Hugo30.10.2013 10:15:12

 

peat

Пользователь

Сообщений: 119
Регистрация: 21.04.2013

Слэн, да, очень быстро работает, спасибо)
Вы не могли бы пояснить синтаксис? в файле-примере работает шикарно, но в моем файле эти данные начинаются не с а1, а с м5 и простая замена результат не приносит — он смещается на пару строк вниз и запятую ставит не там, где надо, а на знак левее (т.е. последнее значение не 30,123, а 3,0123)
Hugo, не знаком с этим методом, к сожалению, с этим методом и последний ваш вариант скопировал данные с точками)

 

peat

Пользователь

Сообщений: 119
Регистрация: 21.04.2013

Уважаемый Слэн, гугл меня спас, вопрос снимается, спасибо большое)
но остается теоретический вопрос — каким образом работает эта штука?) почему заменяет точки на запятые? это опять происки экселя, который сам соображает, что надо бы заменить?)

Изменено: peat30.10.2013 11:28:00

 

Hugo

Пользователь

Сообщений: 23257
Регистрация: 22.12.2012

«последний ваш вариант скопировал данные с точками» — ну значит там были не «Число сохранено как текст», а текст, похожий на число :)
Т.е. у меня с моими разделителями всё сработало как нужно.

 

peat

Пользователь

Сообщений: 119
Регистрация: 21.04.2013

Hugo, проблема изначально стояла в замене точек на запятые) но буду знать о таком вот методе избавления от ошибки «сохранено как текст», спасибо большое

 

Слэн

Пользователь

Сообщений: 5192
Регистрация: 16.01.2013

#18

30.10.2013 12:43:41

примерно…

для vba представление с точкой в качестве десятичного разделителя является стандартом. а обратно уже иксель понимает, что числа надо представлять соответственно локали

Живи и дай жить..

I want to store text such as ‘001234’ in a cell. I have set the number format of this cell to text. After storing, an error ‘Number Stored as Text’ is shown in the form of a green triangle at the top left corner of the cell. It is very disturbing and I want it to be removed programmatically.

Community's user avatar

asked Aug 19, 2013 at 15:28

Foreever's user avatar

Consider:

Sub Macro1()
    Application.ErrorCheckingOptions.NumberAsText = False
End Sub

This is a single line of a much larger macro to configure Excel when I begin working on a new computer.

answered Aug 19, 2013 at 15:36

Gary's Student's user avatar

Gary’s StudentGary’s Student

95.3k9 gold badges58 silver badges98 bronze badges

2

The above examples turn off the «number stored as text» checking for the application.

This code will turn it off for a particular cell:

range("G93").Errors.Item(xlnumberastext).Ignore = True

Gufran Hasan's user avatar

Gufran Hasan

8,7867 gold badges37 silver badges50 bronze badges

answered Jul 22, 2019 at 14:48

James Hammontree's user avatar

You can select the range you want to work and then put for example (now added speechmarks):

Range("A1:Z20").Application.ErrorCheckingOptions.NumberAsText = False

Community's user avatar

answered Jun 15, 2016 at 10:17

user6468957's user avatar

2

Alternately, instead of formatting the cell as text, you could format the cell as 000000 to get the leading 0’s to show.

answered Aug 19, 2013 at 15:41

tigeravatar's user avatar

tigeravatartigeravatar

26.1k5 gold badges29 silver badges38 bronze badges

1

0 / 0 / 0

Регистрация: 27.06.2011

Сообщений: 63

1

Как автоматизировать поиск и устранение ошибки «число сохранено как текст»?

17.09.2011, 17:03. Показов 8403. Ответов 13


Студворк — интернет-сервис помощи студентам

Есть столбец, в котором есть ячейки, содержащие численные значения, сохраненные как текст. Как можно автоматизировать исправление такмх ошибок?
Метод произверения данных столбца на 1 не поможет, т.к. в столбце есть данные типа ‘3545-76р’, а при умножении на 1 они меняются…



0



Alex77

19.09.2011, 03:08

2

Попробуй просто проверять примерно так:
В данном случае по колонке ‘А’

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Sub Макрос3()
'
' Макрос3 Макрос
' Макрос записан 12.07.05 (АлексАндр)
'
Dim i, j, S, A, b
'установка размера таблицы по калонке 'А'
rk = Columns('A').Rows(65536).End(xlUp).Row
'
        For i = 2 To rk
 
        ' установка цифрового формата текущей ячейки
        Range('A' & i).NumberFormat = '0.00'
        
        S = Range('A' & i).Value
        
                For j = 1 To Len(S)
                ' перенос только цифр
                If Asc(Mid(S, j, 1)) >= 48 And Asc(Mid(S, j, 1)) <= 57 Then
                
                A = A & Mid(S, j, 1)
                End If
                'установка разделительного знака всегда запятой вместо точки или тире
                If Asc(Mid(S, j, 1)) = 44 Or Asc(Mid(S, j, 1)) = 45 Or Asc(Mid(S, j, 1)) = 46 Then
                
                A = A & ','
                             ' подсчёт исправлений
                      If Asc(Mid(S, j, 1)) = 45 Or Asc(Mid(S, j, 1)) = 46 Then
                      b = b + 1
                      End If
                                                     
                End If
                
                Next j
        
        Range('A' & i) = A
        
        A = ''
        Next i
    
     
    MsgBox 'Произведено ' & b & ' мсправлений', vbOKOnly, 'Отчёт о работе'
    
End Sub

0 / 0 / 0

Регистрация: 27.06.2011

Сообщений: 63

22.09.2011, 13:19

 [ТС]

3

спасибо за ответ!



0



Сумрак

25.09.2011, 05:51

4

Visual Basic
1
Application.ErrorCheckingOptions.NumberAsText = False

это отклчение на проверку ошибки… вообще :-)
Щас гляну.. еще что нить может есть не такое грубое

Сумрак

25.09.2011, 06:09

5

Visual Basic
1
2
3
If ActiveCell.Errors.Item(xlNumberAsText).Value = True Then
    ActiveCell.Value = Val(ActiveCell.Value)
End If

Сумрак

25.09.2011, 09:23

6

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
Sub notErr(myR As Range)
    For Each mV In myR.Cells
        For i = 1 To 7
            If i = 3 And mV.Errors.Item(i).Value = True Then
                mV.Value = Val(mV.Value)
            Else
                mV.Errors(i).Ignore = True
            End If
        Next i
    Next mV
End Sub

Сумрак

25.09.2011, 18:35

7

хех.. парни.. тут сплошные ограничения… не могу получить полные функции етого обькта… :-))))
официально только тру и фэлс, одного из семи…. и все.. забавно.

0 / 0 / 0

Регистрация: 27.06.2011

Сообщений: 63

26.09.2011, 23:24

 [ТС]

8

Я нашел способ автоматизировать эту задачу!!!!!
Можете считать меня кем хотите, но я сделал так (т.к. эта функция нужна исключительно мне, а не какому-нибудь сотруднику нашей компании):
Достал программу, которая записывает действия пользователя (типа макросы) и записал в ней нажатие клавиши ‘Enter’.
Включил в Excell’е ‘исправление ошибок’ и запустил эту программу, зациклив нажатие кл. ‘Enter’.
Все!!!!! Сижу пью чай, а программа сама нажимает на клавишу и тем самым исправляет ошибки, ну чем не автоматизация???



0



0 / 0 / 0

Регистрация: 25.11.2015

Сообщений: 3

04.05.2018, 14:36

9

Сумрак — the Best !!!



0



1813 / 1135 / 346

Регистрация: 11.07.2014

Сообщений: 4,003

04.05.2018, 18:12

10

temeshov, а просто в настройках отключить эту опцию вас не устраивает?



0



0 / 0 / 0

Регистрация: 25.11.2015

Сообщений: 3

05.05.2018, 07:12

11

Уважаемый Burk, бывают ситуации, когда с числами в таблице нужно произвести какие то действия. Например, хотя бы просто сравнить их с полученными числами из другой таблицы (даже в другом файле). При этом возникает проблема, т.к. сравнение числа и текста само по себе некорректно.
Решение уважаемого Сумрака отлично подходит для подобной задачи. Простое отключение же в настройках этой опции, про которую Вы говорите, к сожалению, ничего не даёт.



0



4131 / 2235 / 940

Регистрация: 01.12.2010

Сообщений: 4,624

05.05.2018, 07:32

12

Vja4eslav, Для сравнения можно использовать такой вариант (вместо констант можно использовать ссылки)



0



0 / 0 / 0

Регистрация: 25.11.2015

Сообщений: 3

05.05.2018, 08:36

13

Спасибо, возьму на заметку)



0



4131 / 2235 / 940

Регистрация: 01.12.2010

Сообщений: 4,624

05.05.2018, 09:27

14

Vja4eslav, Забыл предупредить, при таком сравнении — разделитель целой и дробной части, должен быть один и тот же, т.е. истину мы получим только в первом случае.

Код

=СОВПАД(5,5;"5,5")
=СОВПАД(5,5;"5.5")



0



IT_Exp

Эксперт

87844 / 49110 / 22898

Регистрация: 17.06.2006

Сообщений: 92,604

05.05.2018, 09:27

Помогаю со студенческими работами здесь

Как написать регулярное выражение для выдергивания английских букв и символов: «+», «,», «:», «-«, » «, «!», «?» и «.»
Не могу ни как собразить как написать регулярное выражение для выдергивания английских букв и…

Написать программу проверки правильности написания сочетаний «жи», «ши», «ча», «ща», «чу», «щу». Исправить ошибки
дан текст.написать программу проверки правильности написания сочетаний &quot;жи&quot;, &quot;ши&quot;, &quot;ча&quot;, &quot;ща&quot;,…

нужно с помощью $res=ereg_replace($pattern,»»(или еще как), $str); получить в $res строку: «текст—текст»
Есть

нужно с помощью

Проверить текст на соблюдение правила «жи-ши», «ча-ща» и исправить ошибки
В русском языке, после букв Ж, Ч, Ш,Щ пишется И, А, У, а не Ы, Я, Ю. Проверить заданный текст на…

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

Или воспользуйтесь поиском по форуму:

14

Преобразование текста в число с помощью кода VBA Excel. Массовое преобразование чисел из текстового формата в числовой в заданном диапазоне.

Преобразование текста в число

Преобразование чисел, записанных как текст, в числовой формат осуществляется в VBA Excel с помощью функций преобразования типов данных. Числа в текстовом формате могут быть получены из:

  • ячеек рабочего листа с текстовым форматом;
  • элементов управления формы (TextBox, ListBox, ComboBox);
  • строковых переменных;
  • выражений, возвращающих число в виде текста;
  • текстового поля функции InputBox.

В большинстве случаев VBA Excel сам распознает текст как число без всяких преобразований:

Sub Primer1()

    Debug.Print 23.1254 * 5.2  ‘Результат: 120,25208

    Debug.Print «23,1254» * «5,2» ‘Результат: 120,25208

    Debug.Print TypeName(«23,1254») ‘Результат: String

    Debug.Print TypeName(CDbl(«23,1254»)) ‘Результат: Double

End Sub

Обратите внимание на разделитель дробной части.

Преобразование смешанной строки

Преобразование в число строки, в начале которой имеются цифры, а далее идут другие символы, осуществляется в VBA Excel с помощью функции Val. Из других символов распознается только точка (.) в качестве разделителя дробной части.

Sub Primer2()

    Debug.Print Val(«021.36abcde»)  ‘Результат: 21,36

    Debug.Print Format(Val(«021.36abcde»), «000.0»)  ‘Результат: 021,4

End Sub

Массовое преобразование чисел

Иногда требуется массовое преобразование чисел из текстового формата в числовой в заданном диапазоне рабочего листа.

Пример преобразования диапазона ячеек с текстовым форматом в общий формат и значений ячеек из строки в число на примере объекта Selection:

Sub Primer3()

Dim MyCell As Range

    Selection.NumberFormat = «General»

        For Each MyCell In Selection

            If IsNumeric(MyCell) Then MyCell = MyCell * 1

        Next

End Sub

Сначала выбранному диапазону присваивается общий формат ("General"). Но текстовые значения в ячейках еще не преобразовались в числа. Обходим циклом все ячейки диапазона, и, если текстовое значение ячейки можно интерпретировать как число, умножаем это значение на единицу. После этого текст будет преобразован в число.


I have columns of numbers that, for whatever reason, are formatted as text. This prevents me from using arithmetic functions such as the subtotal function. What is the best way to convert these «text numbers» to true numbers?

Here is a screenshot of the specific issue:
Error

I’ve tried these snippets to no avail:

Columns(5).NumberFormat = "0"

and

 Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

Teamothy's user avatar

Teamothy

1,9903 gold badges15 silver badges24 bronze badges

asked Apr 21, 2016 at 13:41

aLearningLady's user avatar

aLearningLadyaLearningLady

1,9384 gold badges20 silver badges42 bronze badges

4

Use the below function (changing [E:E] to the appropriate range for your needs) to circumvent this issue (or change to any other format such as «mm/dd/yyyy»):

[E:E].Select
With Selection
    .NumberFormat = "General"
    .Value = .Value
End With

P.S. In my experience, this VBA solution works SIGNIFICANTLY faster on large data sets and is less likely to crash Excel than using the ‘warning box’ method.

answered Apr 21, 2016 at 13:41

aLearningLady's user avatar

aLearningLadyaLearningLady

1,9384 gold badges20 silver badges42 bronze badges

3

I had this problem earlier and this was my solution.

With Worksheets("Sheet1").Columns(5)
    .NumberFormat = "0"
    .Value = .Value
End With

answered Apr 21, 2016 at 15:20

BerticusMaximus's user avatar

0

This can be used to find all the numeric values (even those formatted as text) in a sheet and convert them to single (CSng function).

For Each r In Sheets("Sheet1").UsedRange.SpecialCells(xlCellTypeConstants)
    If IsNumeric(r) Then
       r.Value = CSng(r.Value)
       r.NumberFormat = "0.00"
    End If
Next

answered Sep 2, 2017 at 21:29

Jones's user avatar

JonesJones

1812 silver badges4 bronze badges

1

This converts all text in columns of an Excel Workbook to numbers.

Sub ConvertTextToNumbers()
Dim wBook As Workbook
Dim LastRow As Long, LastCol As Long
Dim Rangetemp As Range

'Enter here the path of your workbook
Set wBook = Workbooks.Open("yourWorkbook")
LastRow = Cells.Find(What:="*", After:=Range("A1"), SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
LastCol = Cells.Find(What:="*", After:=Range("A1"), SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column

For c = 1 To LastCol
Set Rangetemp = Cells(c).EntireColumn
Rangetemp.TextToColumns DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
    Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
    :=Array(1, 1), TrailingMinusNumbers:=True
Next c
End Sub

answered Jan 11, 2017 at 15:39

ConertVBA's user avatar

1

''Convert text to Number with ZERO Digits and Number convert ZERO Digits  

Sub ZERO_DIGIT()
 On Error Resume Next
 Dim rSelection As Range
 Set rSelection = rSelection
 rSelection.Select
 With Selection
  Selection.NumberFormat = "General"
  .Value = .Value
 End With
 rSelection.Select
  Selection.NumberFormat = "0"
 Set rSelection = Nothing
End Sub

''Convert text to Number with TWO Digits and Number convert TWO Digits  

Sub TWO_DIGIT()
 On Error Resume Next
 Dim rSelection As Range
 Set rSelection = rSelection
 rSelection.Select
 With Selection
  Selection.NumberFormat = "General"
  .Value = .Value
 End With
 rSelection.Select
  Selection.NumberFormat = "0.00"
 Set rSelection = Nothing
End Sub

''Convert text to Number with SIX Digits and Number convert SIX Digits  


Sub SIX_DIGIT()
 On Error Resume Next
 Dim rSelection As Range
 Set rSelection = rSelection
 rSelection.Select
 With Selection
  Selection.NumberFormat = "General"
  .Value = .Value
 End With
 rSelection.Select
  Selection.NumberFormat = "0.000000"
 Set rSelection = Nothing
End Sub



answered Mar 14, 2020 at 9:10

Mahesh S's user avatar

0

The solution that for me works is:

For Each xCell In Selection

  xCell.Value = CDec(xCell.Value)

Next xCell 

answered Feb 22, 2018 at 17:56

Camilo Vargas's user avatar

Using aLearningLady’s answer above, you can make your selection range dynamic by looking for the last row with data in it instead of just selecting the entire column.

The below code worked for me.

Dim lastrow as Integer

lastrow = Cells(Rows.Count, 2).End(xlUp).Row

Range("C2:C" & lastrow).Select
With Selection
    .NumberFormat = "General"
    .Value = .Value
End With

answered Feb 10, 2019 at 18:18

Mikey's user avatar

MikeyMikey

701 gold badge1 silver badge10 bronze badges

The solution that worked for me many times is:

Sub ConvertTextToNumber()

With Range("A1:CX500") 'you can change the range 
.NumberFormat = "General"
.Value = .Value 
End With

End Sub

answered Sep 23, 2021 at 19:03

Hakob TARPOSHYAN's user avatar

For large datasets a faster solution is required.

Making use of ‘Text to Columns’ functionality provides a fast solution.

Example based on column F, starting range at 25 to LastRow

Sub ConvTxt2Nr()

Dim SelectR As Range
Dim sht As Worksheet
Dim LastRow As Long

Set sht = ThisWorkbook.Sheets("DumpDB")

LastRow = sht.Cells(sht.Rows.Count, "F").End(xlUp).Row

Set SelectR = ThisWorkbook.Sheets("DumpDB").Range("F25:F" & LastRow)

SelectR.TextToColumns Destination:=Range("F25"), DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
    Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
    :=Array(1, 1), TrailingMinusNumbers:=True

End Sub

answered Jan 15, 2019 at 7:07

Louis's user avatar

LouisLouis

392 bronze badges

1

From the recorded macro one gets the code below; for a new application you just need to update selection and range:

Sub num()

Columns("B:B").Select
Selection.TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, _
    TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, _
    Semicolon:=False, Comma:=False, Space:=False, Other:=False, FieldInfo _
    :=Array(1, 1), TrailingMinusNumbers:=True
End Sub

L.Dutch's user avatar

L.Dutch

9263 gold badges17 silver badges38 bronze badges

answered Dec 14, 2022 at 14:59

A Albuquerque's user avatar

I had problems making above codes work. To me multiplying with 1 did the trick:-)

    Cells(1, 1).Select
    Cells(1, 1) = ActiveCell * 1 

answered Dec 23, 2021 at 12:13

Jacob Hald's user avatar

Понравилась статья? Поделить с друзьями:
  • Число слов в строке excel
  • Число символов в тексте excel формула
  • Число с точкой excel не считает
  • Число с пробелами в разрядах excel
  • Число с плавающей запятой excel