- 帖子
- 582
- 主題
- 75
- 精華
- 0
- 積分
- 682
- 點名
- 0
- 作業系統
- win7
- 軟體版本
- office 2010
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2012-10-30
- 最後登錄
- 2026-4-13
|
樞紐分析表幾乎沒用到, 複製再排序即可
准提部林 發表於 2023-11-5 14:54 
請問有沒有比較簡單的方法來表達出結果?
另外有沒有功能是當REPORT �堶悸�"B1" 年份更改后,自動運行VBA, 不用再去按RUN?
Sub Report()
Dim I As Integer, Last As Integer
Dim Frng As Range, Rng As Range
Sheets("Data").Select
Columns("N:CE").Select
Selection.ClearContents
Sheets("Data").Select
Range("A1:L50").Select
Selection.Copy
Sheets("Data").Select
Range("N2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=True
With Selection.Font
.ThemeColor = xlThemeColorDark1
.TintAndShade = 0
End With
Sheets("Data").Select
Columns("A:A").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("Report").Select
Columns("E:E").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Sheets("Report").Select
Range("F2").Select
Application.CutCopyMode = False
Last = Sheets("Report").Range("E1").CurrentRegion.Rows.Count
For I = 2 To Last
Sheets("Report").Range("F" & I).Value = Application.VLookup(Range("B1"), Sheets("Data").Range("N:CC"), I, False)
Next I
Columns("E:F").Select
ActiveWorkbook.Worksheets("Report").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Report").Sort.SortFields.Add2 Key:=Range("F2:F52") _
, SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Report").Sort
.SetRange Range("E1:F52")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.SortMethod = xlPinYin
.Apply
End With
Range("E12:F500").Select
Selection.ClearContents
Range("B1").Select
End Sub |
|