0
我有一個excel工作表,裏面裝滿了數據,並且正在嘗試創建一個我可以運行的宏,這個宏可以將工作表恢復到原始狀態(使用所有原始數據)。沒有任何信息與其他工作表鏈接,並且不受保護。任何幫助,將不勝感激。如何創建宏以將工作表刷新爲原始狀態?
我有一個excel工作表,裏面裝滿了數據,並且正在嘗試創建一個我可以運行的宏,這個宏可以將工作表恢復到原始狀態(使用所有原始數據)。沒有任何信息與其他工作表鏈接,並且不受保護。任何幫助,將不勝感激。如何創建宏以將工作表刷新爲原始狀態?
假設您有一個名爲Original.xlsx的文件,其中保存了原始數據,然後可以使用以下代碼打開它並傳輸值。
我使用術語傳輸在這裏,因爲它是不是複製粘貼,你只是通過使用VBA,而不是複製粘貼值,當你有很多的數據可以是慢。
Option Explicit
Sub Transfer_data()
Dim Orig As Workbook, DataRange As Range
Set Orig = Workbooks.Open("C:\Path\Original.xlsx")
Set DataRange = Orig.Sheets("Sheet1").UsedRange
Dim TopLeftRow As Long, TopLeftColumn As Long, BottomRightRow As Long, BottomRightColumn As Long
TopLeftRow = DataRange.Cells(1, 1).Row
TopLeftColumn = DataRange.Cells(1, 1).Column
BottomRightRow = DataRange.Cells.SpecialCells(xlCellTypeLastCell).Row
BottomRightColumn = DataRange.Cells.SpecialCells(xlCellTypeLastCell).Column
Dim MySheet As Worksheet
Set MySheet = ThisWorkbook.Sheets("Sheet1")
'We clear the content, but not the formattting
MySheet.Cells.ClearContent
Dim MyRange As Range
Set MyRange = MySheet.Range(MySheet.Cells(TopLeftRow, TopLeftColumn), MySheet.Cells(BottomRightRow, BottomRightColumn))
MyRange.Value2 = DataRange.Value2
Orig.Close SaveChanges:=False
End Sub
我假設你的數據集是比較大的,所以這就是爲什麼你需要把它放在一個單獨的文件,但你也可以修改這個代碼,以使同樣的事情,但使用內另一片您的工作簿,而不是打開另一個工作簿。
因此,您希望實現等同於關閉工作簿(不保存)並重新打開工作簿 - 但僅用於一張工作表? – YowE3K