使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

以下 VBA (Visual Basic for Applications) 过程可让你使用单元格值作为Excel for Mac图表中的数据标签。 若要利用该过程,请执行以下操作:

  1. 在 Excel 中,单击“ 工具 > > 记录新宏”。

  2. 在“ 将宏存储在 : ”下拉框中,选择“ 个人宏工作簿”。

    注意: 通过将 VBA 过程存储在个人宏工作簿中,可以在 Excel 的任何实例中使用它。 这意味着它不仅限于在单个工作簿中使用。

  3. 按“确定”。

  4. 转到 “工具> > 停止录制”。

  5. 转到 Visual Basic 编辑器> 工具 >

  6. Visual Basic 编辑器 (VBE) 将在 Excel 上打开。 在左侧导航窗格中,展开 VBAProject (PERSONAL。XLSB) 显示 Module1 的文件夹。

  7. 双击 Module1 以显示将在 VBE 窗口右侧打开的 “代码”窗格

  8. 录制新宏时创建的 VBA 代码不是必需的,因此请将其全部选中,然后按 Delete。 

  9. 接下来,在下面的文本框中选择 VBA 代码,按 CMD+C 进行复制,然后使用 CMD+V 将其粘贴回“代码”窗格中。 现在可以退出 Visual Basic 编辑器并返回到 Excel。

  10. 通过创建包含数据标签的图表来测试宏。 接下来,选择图表上的任意数据标签,并通过单击“ 工具 ”> > 宏“来运行 。 选择“SetCustomDataLabels”,然后按 “运行”。 系统会自动提示你选择数据标签范围,因此请这样做,然后按 “确定”。  

    注意: 无法撤消 VBA 过程,因此请务必在工作簿的副本上尝试此操作。 如果确实运行代码并且不想保留结果,则需要关闭工作簿而不保存工作簿。

  11. 退出 Excel 时,请确保选择在“个人”中保存更改。XLSB,以便宏将来可用。

  12. 每当想要在图表中添加或移除数据标签时,请选择数据标签并运行宏。

  13. 可以使用 Excel > 首选项 > 功能区 & 工具栏 添加按钮以从功能区或工具栏运行宏。

VBA 过程

Option Explicit

Sub SetCustomDataLabels()
' make sure a series is selected
    If TypeOf Selection Is DataLabels Or TypeOf Selection Is Point Then
        Selection.Parent.Select
    ElseIf TypeOf Selection Is DataLabel Then
        Selection.Parent.Parent.Select
    End If

    If TypeOf Selection Is Series Then
        Else
        MsgBox "Select a chart series and try again."
        Exit Sub
    End If

    If Selection.HasDataLabels Then
        'If the data labels from cells are already showing, stop showing them and exit.
        'If labels include other info (e.g., values or categories) this will still appear
        If Selection.DataLabels.ShowRange Then
            Selection.DataLabels.ShowRange = False
            Exit Sub
        End If
    End If
 
'Use the InputBox dialog to set the range for the data labels
    On Error Resume Next
        Dim rng As Range
        Set rng = Application.InputBox(Prompt:="Select data label range.", Title:="Data Label Range", Type:=8)
    On Error GoTo 0

    If rng Is Nothing Then Exit Sub ' clicked cancel
        If Selection.HasDataLabels Then
            'This will include the new text from cells into existing data labels
        Else
        'Otherwise add data labels (empty labels)
            Selection.HasDataLabels = True
            Selection.DataLabels.ShowValue = False
        End If
    
    'Create a string that includes the sheet name and range reference.
    Dim rngAddress As String
        rngAddress = "='" & rng.Worksheet.Name & "'!" & rng.Address(RowAbsolute:=True, ColumnAbsolute:=True, External:=False)
        Selection.DataLabels.Format.TextFrame2.TextRange.InsertChartField msoChartFieldRange, rngAddress, 0
        Selection.DataLabels.ShowRange = True

End Sub

需要更多帮助吗?

可随时在 Excel 技术社区中咨询专家或在社区中获取支持。

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×