Страницы: 1
RSS
Номенклатурный номер (18 знаков) преобразуется в экспоненциальный формат...
 
доброе время суток!!  
Уважаемые, простите, если прошу опять решить проблему больших чисел в ячейке (блондинка) - поиском не нашла ответа на свой вопрос.  
 
Надо поставить в ячейку число 999000000100011874 (18 зн.) - именно число, тк это номенклатурный номер и я его буду использовать в индекс(поискпоз)...  
в ячейке отображается 9,99Е + 17  
 
меняю формат на числовой, вижу - 999000000100011000, последние три позиции обнулены...  
 
помогите, пожалуйста увидеть то что надо в числовом формате.  
 
спасибо.
 
поискпоз же умеет с текстом работать. Зачем Вам число?  
________________________  
khafizovtt@gmail.com
Учимся сами и помогаем другим...
 
... дело в том, что когда я выгружаюсь из системы SAP в Эксель (несколько тысяч позиций), в ячейках я вижу вот это 9,99Е + 17...    
... есть номенклатура в Ворде, вставляю в Эксель - вижу 9,99Е + 17... предварительно устанавливала текстовый формат - ничего не получилось, что не так?
 
Начните с примера
 
... вот "кусок" номенклатуры  
 
как его грамотно забрать в Эксель? выгрузила в блокнот - иначе видно 9,99Е + ...
 
{quote}{login=rsn96 }{date=25.09.2012 03:12}{thema=}{post}... есть номенклатура в Ворде, вставляю в Эксель - вижу 9,99Е + 17... предварительно устанавливала текстовый формат - ничего не получилось, что не так?{/post}{/quote}  
вариант для вставки из ворда  
1. предварительно формат ячейки текст.  
2. Специальная вставка - текст.
 
Для Вашего примера:  
Меню "Данные" - "получение внешних данных" - "из текста". выбираете файл. формат файла: Кириллица (Windows). Далее. Разделитель - "|". Далее. выделяете колонку с номнклатурником и указываете тип "текстовый". Готово.  
________________________  
khafizovtt@gmail.com
Учимся сами и помогаем другим...
 
Вот я записал макрорекордером открытие Вашего файла:  
Sub Макрос1()  
   Workbooks.OpenText Filename:="H:\post_365744.txt", Origin:=1251, StartRow _  
       :=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _  
       ConsecutiveDelimiter:=False, Other:=True, OtherChar:="|", FieldInfo:=Array(Array(1, 9 _  
       ), Array(2, 2), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1)), _  
       TrailingMinusNumbers:=True  
   Columns("A:D").EntireColumn.AutoFit  
   Range("B5").Select  
End Sub  
Вместо "H:\post_365744.txt" подставьте свой путь.
Я сам - дурнее всякого примера! ...
 
все получилось!  
 
у меня нет слов КАК я Вам благодарна!!! расцеловать готова )))) насколько Вы облегчили мои мытарства!!!  
огромнейшее спасибо еще раз!! ))))
 
KukLP, уважаемый, это, наверное, очень сложно для меня.... но я обязательно разберусь на досуге!    
 
спасибо!!!
 
утро доброе )))  
 
KukLP, все получилось!! спасибо )))  
 
только выскочила ошибка 1004...  
 
файл прилагаю    
 
что я с делала не так?  
 
<EM><STRONG>Файл удален</STRONG> - велик размер - [<STRONG>МОДЕРАТОРЫ</STRONG>]</EM>
 
{quote}{login=rsn96}{date=26.09.2012 09:24}{thema=}{post}что я с делала не так?{/post}{/quote}- пишете сообщение через строчку;  
- прикрепляете документ Word  на форуме по Excel;  
- не следите за размером файла;  
- не читаете правила:  
<EM>http://www.planetaexcel.ru/forum.php?thread_id=8735</EM>
 
извините, исправлюсь
 
>>прикрепляете документ Word на форуме по Excel  
 
Вы замечание поняли буквально.  
Картинку не обязательно помещать в файл Word или Excel. Просто ужать до допустимого размера - и можно прикреплять к сообщению.  
Вот Ваш рисунок.
 
Sub www()  
   Workbooks.OpenText Filename:="C:\Documents and Settings\Sea\Рабочий стол\post_365744.txt", Origin:=1251, StartRow _  
       :=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _  
       ConsecutiveDelimiter:=False, Other:=True, OtherChar:="|", FieldInfo:=Array(Array(1, 9 _  
       ), Array(2, 2), Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 1)), _  
       TrailingMinusNumbers:=True  
   ActiveWorkbook.ActiveSheet.Columns("A:D").EntireColumn.AutoFit  
End Sub
Я сам - дурнее всякого примера! ...
 
Или прямым разбором текстового файла  
 
Private Function GetNumber(ByVal this As String) As Variant  
On Error GoTo errHandle  
   this = Trim$(Replace(Replace(this, ".", ""), ",", "."))  
   GetNumber = CDbl(this)  
Exit Function  
errHandle:  
End Function  
 
Public Sub ImportText()  
   Dim fso As Object, pStream As Object  
   Dim lines() As String, subStr() As String  
   Dim vOut() As Variant, sText As String  
   Dim lineCount As Long, iLine As Long  
   Dim fName As String, pSheet As Worksheet  
   fName = LCase$(Application.GetOpenFilename("Text files (*.txt),*.txt"))  
   If (fName = "false") Or (fName = "ложь") Then Exit Sub  
   Set fso = CreateObject("Scripting.FileSystemObject")  
   Set pStream = fso.OpenTextFile(fName, 1, False)  
   sText = pStream.ReadAll: pStream.Close  
   If InStr(sText, "|") <> 1 Then  
       MsgBox "Файл " & fName & vbLf & "не поддерживаемого формата", vbOKOnly + vbExclamation, "Внимание"  
       Exit Sub  
   End If  
   lines = VBA.Split(sText, vbCrLf)  
   lineCount = UBound(lines)  
   ReDim vOut(0 To lineCount, 0 To 3)  
   For iLine = 0 To lineCount  
       subStr = VBA.Split(lines(iLine), "|")  
       If UBound(subStr) > 3 Then  
           vOut(iLine, 0) = Trim$(subStr(1)): vOut(iLine, 1) = Trim$(subStr(2)): vOut(iLine, 2) = Trim$(subStr(3))  
           vOut(iLine, 3) = GetNumber(subStr(4))  
       End If  
   Next iLine  
   Set pSheet = ThisWorkbook.Worksheets.Add  
   pSheet.Columns("A:A").NumberFormat = "@"  
   pSheet.Columns("D:D").NumberFormat = "0.00"  
   pSheet.Range("A1").Resize(lineCount + 1, 4).Value = vOut  
   pSheet.Columns("A:D").AutoFit  
End Sub
 
всем огромное спасибо, работает )))
Страницы: 1
Читают тему
Наверх