2014-04-07 109 views
2

這應該是簡單的,但我迄今爲止總是空白,我搜索了一遍,也沒有找到答案。Excel VBA保存工作表,以便在最後一行打開

我正在使用VBA創建一個新的工作簿,並且我想保存該工作簿,以便在用戶打開它時在最後一行包含數據時打開它。這是我迄今爲止: -

With ActiveWorkbook 
     'Added a last row selection so the sheet will open at the bottom of the page - Ash 07/04/14 
     LastRow = Range("A65536").End(xlUp).Select 
     Rows(ActiveCell.Row).Activate 
     .SaveAs str_DestFolder & str_File, FileFormat:=xlOpenXMLWorkbook, AccessMode:=xlShared 
     .Close 
    End With 

不知何故,這是失敗的我,任何幫助將不勝感激!

回答

2

您可以添加以下行,激活你的最後一行之後:

ActiveWindow.ScrollRow = ActiveCell.Row 

所以你完整的代碼將

With ActiveWorkbook 
     LastRow = Range("A65536").End(xlUp).Select 
     Rows(ActiveCell.Row).Activate 
     ActiveWindow.ScrollRow = ActiveCell.Row 
     .SaveAs str_DestFolder & str_File, FileFormat:=xlOpenXMLWorkbook, AccessMode:=xlShared 
     .Close 
    End With 
+0

完美!謝謝!我開始考慮複製一個模塊到新的工作簿等,但這是非常簡單的。 – LuckySevens

0
LastRow = Wb.Worksheets("Sheet1").Cells(Rows.Count, 1).End(xlUp).Row 
Wb.Worksheets("Sheet1").Cells(LastRow, 1).Select 
With Wb 
    Application.DisplayAlerts = False 
    .SaveAs Filename:="YourFilePath", AccessMode:=xlShared 
    .Close 
    Application.DisplayAlerts = False 
End With 
Set Wb = Nothing 

嘗試......

+0

謝謝你,我確定它的工作很好,Davids的答案只是一個更簡單的解決方案。 – LuckySevens

1

幾個建議

  • 應該在BeforeSaveOpen事件中運行應該運行以將工作簿設置爲下一次打開的代碼。
  • 最好運行代碼以自動在特定工作表上工作(下面示例中的第一張工作表),而不是依賴它處於活動狀態。
  • Excell 2007及以上版本擁有100萬行,因此使用Cells(Row.Count,"A").End(xlup)Find而不是Range(「A65536」).End(xlup)`。對於

代碼的ThisWorkbook模塊(在保存時自動運行)

Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) 
Dim ws As Worksheet 
Set ws = Sheets(1) 
Dim rng1 As Range 
Set rng1 = ws.Columns("A:A").Find("*", ws.[a1], xlValues, , xlByRows, xlPrevious) 
Application.Goto rng1 
ActiveWindow.ScrollRow = rng1.Row 
End Sub 
+0

感謝您輸入@brettdj。我的實際完整代碼正在做的是從一個工作簿中提取數據,創建一個新的工作簿,然後將所有數據複製到第一個工作表中。這全部用於每10分鐘運行一次的自動化作業,並且每天午夜啓動一個新的工作簿。我真的很想避免嘗試將代碼添加到這些新創建的工作簿中,如果我能夠避免這種情況,幸運的是,Davids在這種情況下對我來說非常適合我 - 在用戶只看到新數據的最後一個小時左右工作簿。單元格(Row.Count,「A」)。End(xlup)是一個偉大的點btw! – LuckySevens

+0

@LuckySevens沒有probs,很高興聽到你有它排序:) – brettdj

相關問題