我正在處理大量數據存儲在Excel工作簿中的項目,每個季度都有一個新表單。我需要創建一個數據顯示板,顯示過去4個季度的數據圖。我已經設置了一個下拉菜單來選擇季度,並試圖將相關數據從源表單中提取到儀表板表單中,但我無法使其工作。Excel VBA - 將單元格內容從一個表單複製到另一個表單
Private Sub SelectionChange(ByVal Target As Range)
Dim Q4 As Integer, Q1 As Integer, Q2 As Integer, Q3 As Integer, selectedQ As Variant
'read selected quarter
selectedQ = ActiveSheet.Range("B3").Value
'compare selected quarter to identify sheet index
'Q4 is current quarter
If selectedQ = "15-16 Q4" Then Q4 = 10 Else
If selectedQ = "16-17 Q1" Then Q4 = 11 Else
If selectedQ = "16-17 Q2" Then Q4 = 12 Else
If selectedQ = "16-17 Q3" Then Q4 = 13 Else
If selectedQ = "16-17 Q4" Then Q4 = 14 Else
If selectedQ = "17-18 Q1" Then Q4 = 15 Else
If selectedQ = "17-18 Q2" Then Q4 = 16 Else
If selectedQ = "17-18 Q3" Then Q4 = 17 Else
If selectedQ = "17-18 Q4" Then Q4 = 18 Else
If selectedQ = "18-19 Q1" Then Q4 = 19 Else
End If
'set sheet index for previous quarters
If Q4 > 3 Then
Q3 = Q4 - 1
Q2 = Q4 - 2
Q1 = Q4 - 3
End If
'fill current quarter using Sheets(1).Range(1, 1) as source
'under 3 reg
ActiveSheet.Range("C10").Value = Sheets(Q4).Range("Z21").Value
ActiveSheet.Range("C11").Value = Sheets(Q4).Range("Z29").Value
ActiveSheet.Range("C12").Value = Sheets(Q4).Range("Z39").Value
ActiveSheet.Range("C13").Value = Sheets(Q4).Range("Z50").Value
ActiveSheet.Range("C14:C19").Value = Sheets(Q4).Range("Z60:Z65").Value
End Sub
我最初開始在Mac上這個項目,但也嘗試當我看着它顯示消息「無法編譯模塊」在PC上的可變selectedQ調試這在Windows Office 2007中。我錯過了什麼?
在此先感謝
伊恩
我應該補充說,Q1 - Q4是從4張不同的紙張中選擇數據。然而,調試這個表明代碼沒有從工作表中拾取selectedQ然後識別其他工作表以從中檢索單元格內容。 – Rossi
確保'ActiveSheet'是你的單元格「B3」你必須從中選擇的值。你最好使用一些完全合格的名字,比如'Worksheets(「MySheet」)。範圍(「B3」)' – user3598756