我在Excel 2007中有一张桌子,我想要一张图表

用户3496832

我在excel 2007中有一张桌子,我想要一张图表。
这是我的代码:

Range("A2:P15").Select
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Range("'list'!$A$2:$P$15")
ActiveChart.ChartType = xlLineStacked
ActiveChart.SetSourceData

该表的开头是“ A2”,但每次结尾都不相同
我找不到解决方案,请帮助我。
谢谢 ;)

克里斯·普罗瑟

如果要从特定起点(在下面的代码中设置为A2)选择工作表中的所有单元格,则通常使用LastRow和LastCol函数。有很多不同的方法来获取最后一行/列,我已经包括了我通常使用的内容。

我还添加了您的代码,并将其放在名为Main的过程中。这将遍历工作簿中的每个工作表,并如上所述获得范围,然后进入您发布的代码。由于您的工作表中没有数据,因此我无法测试图表本身的代码:

Sub main()
    Const cStartCell As String = "A2"
    Dim vLastRow As Long, vLastCol As String
    Dim vRange As Range
    Dim vSheet As Worksheet

    For Each vSheet In Application.ActiveWorkbook.Sheets
        vLastRow = LastRow(vSheet.Name)
        vLastCol = LastCol(vSheet.Name)
        Set vRange = vSheet.Range(cStartCell & ":" & vLastCol & vLastRow)
        Debug.Print "Sheet " & vSheet.Name & ", vRange set to address range: " & vRange.Address()

        vSheet.Shapes.AddChart.Select
        ActiveChart.SetSourceData Source:=Range(vRange)
        ActiveChart.ChartType = xlLineStacked
        ActiveChart.SetSourceData (vRange)
    Next vSheet
End Sub

Function LastRow(pSheet As String)
On Error GoTo LastRow_err

    LastRow = Sheets(pSheet).UsedRange.Rows.Count

LastRow_exit:
    Exit Function

LastRow_err:
    Debug.Print "Error in LastRow function", vbCrLf, "Err no: ", _
                Err.Number, vbCrLf, "Err Description: ", Err.Description

End Function

Function LastCol(pSheet As String)
On Error GoTo LastCol_err

    LastCol = ColNoToLetter(Sheets(pSheet).UsedRange.Columns.Count)

LastCol_exit:
    Exit Function

LastCol_err:
    Debug.Print "Error in LastCol function", vbCrLf, "Err no: ", _
                Err.Number, vbCrLf, "Err Description: ", Err.Description

End Function

Function ColNoToLetter(pColNo As Integer)
On Error GoTo ColNoToLetter_err
' Goes from currently active cell and finds the next available row

    ' Local constants / variables
    Const cProcName = "ColNoToLetter"
    Dim vNumberOne As Integer
    Dim vNumberTwo As Integer
    Dim vLetterOne As String
    Dim vLetterTwo As String

    vNumberOne = 0
    vNumberTwo = 0
    vLetterOne = Empty
    vLetterTwo = Empty

    vNumberOne = Int((pColNo - 1) / 26)
    vNumberTwo = pColNo - (vNumberOne * 26)
    vLetterTwo = Chr(vNumberTwo + 64)

    If vNumberOne >= 1 Then
        vLetterOne = Chr(vNumberOne + 64)
    End If

    ColNoToLetter = vLetterOne & vLetterTwo

ColNoToLetter_exit:
    Exit Function

ColNoToLetter_err:
    Debug.Print "Error in ColNoToLetter function", vbCrLf, "Err no: ", _
                Err.Number, vbCrLf, "Err Description: ", Err.Description
    Resume Next

End Function

如果您对代码的工作方式有任何疑问,请告诉我。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

我如何退回在另一张桌子上无效的设备

如何阻止Excel工作表覆盖,我希望它在一张工作表中

我可以在Redshift中从一张表复制到另一张吗

如何从一张桌子获得我想要的视图结果

Excel-识别一张纸中的值与另一张纸中具有不同范围的值

为什么我只有一张专辑?

我如何从另一张纸复制行并将其粘贴到其中有表格的纸中?

我如何订购另一张桌子的查询?

CSS:在<card>内,我想要一张最大高度的图像,并采用所有宽度而不缩放

我可以阻止一张桌子更新吗?

我有一张桌子,我想对其进行一些预先计算并以新的形状获得桌子

我有一张桌子,我的输出结果如描述中所示

我有一张桌子,为什么我的中央单元格比其他单元格长

如何修复我的代码以显示一张桌子?

火鸟-自我加入一张桌子

我该如何在同一张桌子上进行双重连接

我想帮忙制作一张可打印1-100的桌子

我有一张桌子,上面有城市和人口。我想根据人口进行随机分组

我想显示一张桌子上的记录

我有一张桌子,希望我的描述中显示的结果桌子

Django-在模板中无法正确显示我的一张桌子

PHPExcel getCellCollection 总是指向我的 excel 中的最后一张

SQL 数据库。我丢了一张桌子,我现在如何创建它?

我应该使用一张桌子还是分成两张桌子?

为什么我的搜索字段在一张桌子上有效,而在另一张桌子上无效?

我如何在 Django 中插入一张表并更新另一张表

在一张桌子内,我需要有 thead、tbody 和 tfooter 吗?

我曾尝试使用 beautifulsoup 刮一张桌子,但表格中只有一行显示为输出

我有一张桌子,但我不确定如何让标题可以滚动