我正在编写一个代码,该代码循环遍历工作簿中的某些工作表,将所有这些工作表中的特定范围复制到一个工作表“总体摘要”中,并为每个数据块创建图表。我的问题是我不知道如何告诉它仅对图表使用特定的三个字段,而不是对所有字段使用。可能有多个街区。每个块都以“有库存?”开头在A栏中。 我需要的字段是:
有库存吗?总数 是的,一些电话 没有一些数字 排除了一些数字
每个信息块之间有5行。在J列中创建的图表。
我得到的代码可以工作,但是它不能解释每个块之间的5行。 这是我的代码:
Sub chart1()
Dim sh As Worksheet
Dim mySourceData As Range, myChartD As Range
Dim myChart As Chart
Dim r As Range, b As Range, wCell As String
Dim lr As Long
Const sText = "In Stock?"
Set sh = ThisWorkbook.Worksheets("Overall Summary")
lr = sh.Range("A" & Rows.Count).End(xlUp).Offset(1).Row
sh.Cells(lr, "A").Value = sText
Set r = sh.Columns("A")
Set b = r.Find(sText, LookAt:=xlWhole, LookIn:=xlValues)
If Not b Is Nothing Then
wCell = b.Address
Do
'detalle
If b.Row = lr Then Exit Do
For i = b.Row + 1 To lr
If sh.Cells(i, "A").Value = sText Then
'fin = i - 1
'identify source data
Set mySourceData = sh.Range("A" & b.Row & ":B" & i - 1)
'identify chart location
Set myChartD = sh.Range("J" & b.Row & ":N" & i - 1)
'create bar chart
Set myChart = sh.Shapes.AddChart(XlChartType:=xlWaterfall, _
Left:=myChartD.Cells(1).Left, _
Top:=myChartD.Cells(1).Top, _
Width:=myChartD.Width, _
Height:=myChartD.Height).Chart
myChart.SetSourceData Source:=mySourceData
Exit For
End If
Next
Set b = r.FindNext(b)
Loop While Not b Is Nothing And b.Address <> wCell
End If
sh.Cells(lr, "A").Value = ""
MsgBox "Done"
End Sub
谢谢