【发布时间】:2014-05-01 15:13:50
【问题描述】:
我正在使用 OFFSET 函数为下图所示的表格创建动态图表。基本上在单击标有“复制平均 VCD 值”的按钮时,代码会将值从另一张表复制到当前表。如果遇到任何带有“#DIV/0!”的单元格我将其设置为“N/A”。但在这种情况下,我没有得到动态图表。如果不是 N/A 我做“”,它会创建一个动态图表,但会将垃圾值“1”添加到图表上的第一个集合。如果我手动删除包含数据的最后一行下方包含“N/A”的所有行,我只会得到所需的结果(详情请参见图片)。
这是我用于命令按钮“复制平均 VCD 值”的代码:
Private Sub CommandButton2_Click()
r = 7
'//j increments the column number
'//i increments the row number
'//r is used for taking values from alternate cells(sheet3 column K) rowwise
For j = 2 To 14
For i = 7 To 26
If ThisWorkbook.Sheets(3).Range("K" & r & "").Text = "#DIV/0!" Then
ThisWorkbook.Sheets(2).Cells(i, j).Value = "N/A"
Else
ThisWorkbook.Sheets(2).Cells(i, j).Value = ThisWorkbook.Sheets(3).Range("K" & r & "").Value
End If
r = r + 2
Next i
Next j
End Sub
如果我添加以下代码,它可以工作,但它会删除表格前后的整行。见图片:https://lh6.googleusercontent.com/-WiM8HN61zkM/U2Jz2J_JxjI/AAAAAAAAACw/z4i3hlakyAI/w1598-h442-no/offset+delete+row.PNG
Private Sub CommandButton2_Click()
r = 7
'//j increments the column number
'//i increments the row number
'//r is used for taking values from alternate cells(sheet3 column K) rowwise
For j = 2 To 14
For i = 7 To 26
If ThisWorkbook.Sheets(3).Range("K" & r & "").Text = "#DIV/0!" Then
ThisWorkbook.Sheets(2).Cells(i, j).Value = "N/A"
Else
ThisWorkbook.Sheets(2).Cells(i, j).Value = ThisWorkbook.Sheets(3).Range("K" & r & "").Value
End If
r = r + 2
Next i
Next j
Dim c As Range
Dim SrchRng
Set SrchRng = ActiveSheet.Range("B7:B26")
Do
Set c = SrchRng.Find("N/A", LookIn:=xlValues)
If Not c Is Nothing Then c.EntireRow.Value = ""
Loop While Not c Is Nothing
End Sub
这是我在这种情况下用于 B 列的偏移函数:
=OFFSET('Data Summary Template'!$B$7,0,0, COUNTA('Data Summary Template'!$B$7:$B$26),1)
【问题讨论】:
-
“我正在使用 OFFSET 函数来创建动态图表”
-
我刚刚在 NameManager 中使用 offset 函数创建了系列列表,然后在图表中使用了这些列表。详情请看图片。如果您需要更多信息,请告诉我。谢谢你的帮助! lh6.googleusercontent.com/-7xU7uzRu47I/U2JtMsvYcVI/AAAAAAAAAB8/…
-
到目前为止,我已经设法删除了最后一个单元格下方包含“N/A”的行,但我无法控制确切的范围。它正在删除 Col A 和也超出 Col N lh4.googleusercontent.com/-rz9fR03fr9U/U2JySKxElaI/AAAAAAAAACU/… 我添加了上面的代码