當前位置:編程學習大全網 - 編程軟體 - VBA代碼求翻譯?

VBA代碼求翻譯?

Private Sub CommandButton2_Click()

tms = Timer '記錄程序開始運行的時間,關屏幕刷新和告警彈框顯示

Application.ScreenUpdating = False

Application.DisplayAlerts = False

'遍歷所有工作表,把當前活動工作表以外的全刪除,然後打開告警彈框顯示

For Each sht In Sheets

If sht.Name <> ActiveSheet.Name Then sht.Delete

Next

Application.DisplayAlerts = True

'定義字典和二維數組,數組裏是當前表格裏有數據的區域的內容

Set d = CreateObject("scripting.dictionary")

arr = ActiveSheet.UsedRange

n = UBound(arr, 2)

For i = 4 To UBound(arr)'遍歷表格第4行到最後壹行

If Not d.exists(arr(i, 1)) Then'把A列不重復值所在行的內容放進字典

Set d(arr(i, 2)) = Range("a" & i).Resize(1, n)

Else

Set d(arr(i, 3)) = Union(d(arr(i, 3)), Range("a" & i).Resize(1, n))'把A列重復值所在行的內容放進字典

End If

Next

'把字典裏的所有內容寫到新工作表

x = d.keys

For k = 0 To UBound(x)

Set sht = ActiveWorkbook.Sheets.Add(, after:=ActiveSheet)

sht.Name = x(k)

d.items()(k).Copy sht.[a4]

Rows("1:3").Copy sht.[a1]

sht.Cells.EntireColumn.AutoFit'自動調整各表格的列寬

Next

'開屏幕刷新,彈框顯示程序運行時間

Application.ScreenUpdating = True

MsgBox Format(Timer - tms, "拆分完成,***耗時:0.00秒"), 64, "時間統計"

End Sub

其實相同功能用數據透視表也能做出來。

  • 上一篇:發現自己玩夢幻,問道,塔防等各種策略遊戲很有天賦(王者榮耀動作類的不行)可以找什麽工作?
  • 下一篇:推薦幾本有關數控車床的書…
  • copyright 2024編程學習大全網