2008-11-11 35 views
4

我想寫一個宏一組塔什麼讓在Excel(VBA)的最後一個非空表

  • 有一個工作簿,他們每天創造新的工作表的最佳途徑,也有
  • 表1表2在它們的長片材的列表的末尾表3

我需要在彙總此信息的其他工作簿的新列中創建外部單元格引用。

所以我需要知道如何獲得最後一張非空頁,所以我可以抓住這些數據並將其恰當地放在摘要中。

回答

6

此功能通過從右側的片材到左,直到它找到一個非白紙,並返回其名稱

Function GetLastNonEmptySheetName() As String 
Dim i As Long 
For i = Worksheets.Count To 1 Step -1 
    If Sheets(i).UsedRange.Cells.Count > 1 Then 
    GetLastNonEmptySheetName = Sheets(i).Name 
    Exit Function 
    End If 
Next i 
End Function 
+0

謝謝!我一直在潛入excel VBA,並且我認爲學習速度很快,但與我所知道的語言不同。 – 2008-11-11 14:21:47

1

上述方法,將忽略與單個小區條目的片材,雖然這可能似乎是一個狡辯,一個Find尋找一個非空白的細胞會給予更多的確定性。

Find方法中的xlFormulas參數將查找隱藏的單元格(但未篩選的單元格),而xlValues則不會。

Sub FindLastSht() 
    Dim lngCnt As Long 
    Dim rng1 As Range 
    Dim strSht As String 
    With ActiveWorkbook 
     For lngCnt = .Worksheets.Count To 1 Step -1 
      Set rng1 = .Sheets(lngCnt).Cells.Find("*", , xlFormulas) 
      If Not rng1 Is Nothing Then 
       strSht = .Sheets(lngCnt).Name 
       Exit For 
      End If 
     Next lngCnt 
     If Len(strSht) > 0 Then 
      MsgBox "Last used sheet in " & .Name & " is " & strSht 
     Else 
      MsgBox "No data is contained in " & .Name 
     End If 
    End With 
End Sub 
相關問題