1
분산 형 차트에 플롯 할 소수의 셀을 선택할 수있는 매크로를 코딩하려고합니다.분산 형 차트 플로팅을위한 동적 다중/단일 액티브 시트 참조
현재 차트 용 셀 항목을 선택하는 위치에서 시트 이름 만 하드 코딩 할 수 있습니다.
동적 시트 참조를 허용하도록 하드 코딩을 변경할 수 있기를 바랍니다.
이렇게하면 여러 시트의 멀티 셀 셀을 선택한 다음 값을 분산 형 차트에 플로팅 할 수 있어야합니다.
귀하의 조언을 위해 아래 코드를 첨부합니다. TQ 하드 코딩 된 시트 이름에 대해 발행 : .Name = "= 'US Sector (2)'!" & MultiSel.Address (ReferenceStyle : = xlA1) 에 희망 .Name = "= [동적 시트 참조]!" & MultiSel.Address (ReferenceStyle = XLA1)
Sub ChartUSA()
' Keyboard Shortcut: Ctrl+y
'
Dim MultiSel As Range
Dim addr, cellAdd_name, cellAdd_Xaxis, cellAdd_Yaxis As Variant
Dim cnt As Integer
Dim ws As Worksheet
cnt = 0
' make sure a range is selected
If TypeName(Selection) <> "Range" Then Exit Sub
Set ws = ActiveSheet
'For Each cnt In Selection
For Each MultiSel In Selection
cnt = cnt + 1
'ActiveSheet.ChartObjects("Chart USA").Activate
Sheets("ChartUSASX").ChartObjects("Chart USA").Activate
ActiveChart.PlotArea.Select
With ActiveChart.SeriesCollection.NewSeries
.Name = "=ws!" & MultiSel.Address(ReferenceStyle:=xlA1)
.XValues = "='US Sector (2)'!" & MultiSel.Offset(0, 24).Address(False, False)
.Values = "='US Sector (2)'!" & MultiSel.Offset(0, 25).Address(False, False)
.MarkerSize = 10
.ApplyDataLabels
.DataLabels.Select
Selection.ShowSeriesName = True
Selection.ShowValue = False
.MarkerSize = 10
End With
Next
End Sub
는'MultiSel.Parent.Name' 당신에게 시트 이름을 줄 것이다. –