2013-03-22 4 views
5

Это может показаться слишком простым, но я так отчаянно.Ошибка переполнения VBA-Excel из-за длинного типа данных

Что мне нужно сделать, это получить последнее значение из столбца «D», который имеет

большое количество числа, напр. 987654321, код в порядке, если значение только двузначное. Я просто не могу определить проблему.

Dim lastRow As Long 
lastRow = Cells(Rows.Count, "D").End(xlUp).Value 
Sheets("Sheet1").TxtBox1.Value = lastRow 
+0

Приведенный выше код работает для меня ... –

+0

даже с большим количеством числа? как 3000000000? 3 миллиона? – Krynce

+2

Для значений типа '3000000000' объявлять' lastRow' как 'Double' –

ответ

12

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

Dim lastRow As Double 

Кроме того, так как вы хотите, чтобы сохранить его в текстовом поле вы можете сделать 2 вещи

  1. Объявить его как строку
  2. хранить его непосредственно в текстовое поле.

    Option Explicit 
    
    Sub Sample1() 
        Dim lastRow As String 
    
        With Sheets("Sheet1") 
         lastRow = .Cells(.Rows.Count, "D").End(xlUp).Value 
         .TextBox1.Value = lastRow 
        End With 
    End Sub 
    
    Sub Sample2() 
        With Sheets("Sheet1") 
         .TextBox1.Value = .Cells(.Rows.Count, "D").End(xlUp).Value 
        End With 
    End Sub 
    
4

Длинные могут обрабатывать значения до 2.1B! Для любых больших значений лучше использовать Double вместо Long

+0

lol, глупо меня. Просто пытаюсь справиться с крайним сроком. Но БЛАГОДАРИМ ВАС ТАК БОЛЬШЕ для слова DOUBLE ..: D – Krynce

Смежные вопросы