1
主要代碼的一部分與圖表工作表相關,它允許點擊圖表(編碼在圖表中完成)觸發宏。但主要程序涉及刪除和創建圖表。一旦程序刪除圖表工作表,圖表中的代碼也會被刪除。如何在創建新圖表時執行圖表代碼?需要從任何其他圖表工作表模塊或普通模塊或任何類別運行圖表工作表的代碼
Sub AddNewChart()
Dim Newchart As Chart, ram As String, ram1 As String, num As Long
num = InputBox("Please Enter the Sheet Number", "Sheet Number")
'To execute code in particular sheet number
ram = Worksheets(num).Range("AY4").End(xlDown).Address(False, False)
ram1 = Worksheets(num).Range("AZ4").End(xlDown).Address(False, False)
Set Newchart = Charts.Add
With Newchart
.ChartType = xlXYScatterLinesNoMarkers
Do Until .SeriesCollection.Count = 0
.SeriesCollection(1).Delete
Loop
.SeriesCollection.NewSeries
.SeriesCollection(1).Name = "=""Values"""
.SeriesCollection(1).XValues = Worksheets(num).Range("AY4", ram)
.SeriesCollection(1).Values = Worksheets(num).Range("AZ4", ram1)
End With
Application.DisplayAlerts = False
Sheets("Ravi").Delete
'*sheet named ravi is deleted along with code*
Application.DisplayAlerts = True
Newchart.Name = "Ravi"
'How to get another code in this Ravi Chart sheet module?
Sheets("Ravi").Activate
End Sub
下面是一個圖表代碼,即使在刪除和替換之後仍會出現在圖表工作表模塊中。
Sub Chart_mouseup(ByVal Button As Long, ByVal Shift As Long, _ByVal x As Long, ByVal y As Long)
Dim ElementID As Long, Arg1 As Long, Arg2 As Long
Dim myX As Variant, myY As Double
With ActiveChart
' Pass x & y, return ElementID and Args
.GetChartElement x, y, ElementID, Arg1, Arg2
' Did we click over a point or data label?
If ElementID = xlSeries Or ElementID = xlDataLabel Then
If Arg2 > 0 Then
' Extract x value from array of x values
myX = WorksheetFunction.Index _
(.SeriesCollection(Arg1).XValues, Arg2)
' Extract y value from array of y values
myY = WorksheetFunction.Index _
(.SeriesCollection(Arg1).Values, Arg2)
' Display message box with point information
MsgBox "Series " & Arg1 & vbCrLf _
& """" & .SeriesCollection(Arg1).Name & """" & vbCrLf _
& "Point " & Arg2 & vbCrLf _
& "X = " & myX & vbCrLf _
& "Y = " & myY
End If
End If
End With
End Sub
在刪除之前複製代碼,然後將其粘貼回新的工作表。看看這[鏈接](http://stackoverflow.com/q/24701517/2521004)是否有助於你開始。對於圖表來說,它應該與對普通圖表背後的代碼使用相同的方法。 –
感謝@PortlandRunner它幫助 – Kk12345