无法运行代码

时间:2017-04-27 19:06:46

标签: excel vba excel-vba

这是我用来生成图表的两个不同代码,并使用两个不同的按钮进行计算。

Code1:要生成图表,可以正常使用

Private Sub CommandButton1_Click()

    'PURPOSE: Create a chart (chart dimensions are required)

    Dim rng As Range
    Dim cht As ChartObject

    'Your data range for the chart
      Set rng = ActiveSheet.Range("A27:B113")

    'Create a chart
      Set cht = ActiveSheet.ChartObjects.Add( _
        Left:=ActiveCell.Left, _
        Width:=650, _
        Top:=ActiveCell.Top, _
        Height:=250)

    'Give chart some data
      cht.Chart.SetSourceData Source:=rng

    'Determine the chart type
      cht.Chart.ChartType = xlColumnClustered

    End Sub
    Code 2: To do the calculations

    Sub GenerateCharts()

    [D32].Value = "AA"

    Range("D31").Formula = Application.WorksheetFunction.SumIf(Range("B27:B113"), ">=56") / Application.WorksheetFunction.Sum(Range("B27:B113"))

    [H35].Value = "All Defects"
    Range("I35").Formula = "=SUM(B27:B113)"

    [H36].Value = "Percentage(%)"
    Range("I36").Formula = "=(1-(I28/I29))*100"

    [H28].Value = "Non Kaizens"
    **Range("I28").Formula = Application.WorksheetFunction.SumIf(Range("'Machine 4th QTR’!V:V", "'Machine 4th QTR'!B:B","", "'Machine 4th QTR’!V:V'"), "<56"**)

End Sub

我这里有两个问题 1.代码1运行正常,来到代码2,它所做的就是计算值。 当我运行代码2时, BOLD 中的部分会显示错误。 BOLD 部分将下面显示的公式转换为VBA代码。

=SUMIFS('Machine 4th QTR'!V:V,'Machine 4th QTR'!B:B,"",'Machine 4th QTR'!V:V,"<56")

这是显示的错误消息:

  

错误的论点数或无效的财产分配

我无法弄清楚最后一篇文章中出了什么问题(突出显示)。

  1. 我可以将两个代码嵌入到一个代码中,这样我只需单击一下即可执行这两个操作。

1 个答案:

答案 0 :(得分:0)

""更改为""""TEXT(,),并将"<56"更改为""<56""。您需要在引用的字符串中加倍引号或使用替代。

如果您想要单元格中的公式,请使用表示公式的字符串,而不是WorksheetFunction.SumIfs公式的评估(又名结果)。

您需要一个SUMIFS,而不是SUMIF。

您在某些地方使用了后引号(例如)而不是勾号(例如')。

Range("D31").Formula = "=SUMIF(B27:B113, "">=56"")/SUM(B27:B113)"
 ...
Range("I28").Formula = "=SUMIFS('Machine 4th QTR'!V:V, 'Machine 4th QTR'!B:B, TEXT(,), 'Machine 4th QTR'!V:V, ""<56"")"