2011-10-06 52 views
1

我希望用戶通過InputBox對話框輸入最後填充的單元格編號。如何在VBA中顯示InputBox對話框時滾動窗口?

numRows = InputBox("Enter number of rows in the BOM: ", "Number of Rows") 

問題是當對話框在屏幕上時,用戶無法向下滾動查看最後一行。由於某些單元格填充的某些單元格不是動態的,因此很難找到填充行的數量。

謝謝。

編輯: 我使用Excel 2007中

回答

2

我建議你編程找出最後一行充滿不詢問用戶。這裏

http://www.mrexcel.com/td0058.html

是該問題的一些不同的解決方案(也涉及其中一些細胞都充滿的情況下,有些則不是)。

+0

的情況下,任何人都好奇這裏是我做過什麼:numRows行=範圍(「A :B「)。SpecialCells(xlLastCell)。選擇它向下滾動到最後填充的單元格,然後詢問用戶的號碼。 – infinitloop

1

雖然這已被封閉,但我將添加這些評論作爲答案,而不是作爲評論給予此回覆的長度和格式化的需要。該鏈接確實注意到您選擇的SpecialCells方法可能存在問題,我在下面添加了一個修補程序。另外,我已經添加代碼,將看實際的行數XL2007,鏈接(在2002年寫回)目前固定爲65536行,因爲這是存在的唯一Excel行號,此時

  • SpecialCells

LASTROW = Cells.SpecialCells(xlCellTypeLastCell).Row

可以應用於這樣以確保usedrange正確復位到最後一個單元格

ActiveSheet.UsedRange 
LastRow = Cells.SpecialCells(xlCellTypeLastCell).Row 
  • 使用行數從底部

    LastRowColA = Range("A65536").End(xlUp).Row 
    

以迎合所有行Excel版本(xl07和XL10擁有1.048萬行)

LastRowColA = Cells(Rows.Count,"A").End(xlUp).Row 
  • 使用查找

    LastRow = Cells.Find("*",SearchOrder:=xlByRows,SearchDirection:=xlPrevious).Row 
    

這會報錯了,如果表是空白的(即沒有值dfind)

Dim rng1 As Range 
    Set rng1 = Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious) 
    If Not rng1 Is Nothing Then 
     LastRow = rng1.Row 
    Else 
     'sheet is blank 
    End I 
相關問題