Michael可以在工作表中选择一些单元格,而“任务栏”(位于工作表底部)显示了对这些选定单元格的一些分析,例如单元格的总和或平均值。迈克尔想知道是否有一种方法可以将任务栏中的值复制到剪贴板中,以便可以将该值粘贴到工作表中的其他位置。

简短的回答是“否”,无法访问任务栏中的信息。话虽这么说,您可以使用多种方法来重新创建信息,以便您可以访问它。

第一种解决方法不涉及使用宏,但是您可能会认为它有点过大。 (谁说过您不能在Excel中使用火箭筒拍摄a虫?)这种方法涉及到数据分析工具的使用。该工具是通过使用外接程序来实现的。您可以通过查看功能区的“数据”选项卡确定在系统上是否已启用它,您应该在右侧看到“数据分析”工具。如果看不到,请按照下列步骤操作:

。显示“ Excel选项”对话框。 (在Excel 2007中,单击Office按钮,然后单击Excel选项。在Excel 2010和更高版本中,显示功能区的“文件”选项卡,然后单击“选项”。)

。在对话框的左侧,单击“加载项”。

。在对话框的底部,使用“管理”下拉列表选择“ Excel加载项”。

。单击执行按钮。 Excel将显示“加载宏”对话框。 (请参见图1。)

。选中“分析工具库”旁边的复选框。

。单击确定。

激活“数据分析”加载项后,选择要分析的单元格。您应该照常在任务栏上查看统计信息。现在,显示功能区的“数据”选项卡,然后单击“数据分析”工具。

Excel将显示“数据分析”对话框。 (请参见图2。)

image

图2.“数据分析”对话框。

该对话框除了列出您可以执行的大量不同分析之外,什么也不做。您要选择“描述性统计信息”选项,然后单击“确定”。 Excel然后显示“描述性统计信息”对话框。 (请参见图3。)

image

图3.描述性统计对话框。

如果您要分析的单元格尚未在“输入范围”框中注明,请在该框中单击一次,然后在工作表中选择单元格。

然后,在对话框底部附近,单击“摘要统计信息”复选框。当您单击确定时,Excel将创建一个新的工作表,其中包含可能显示在任务栏中的所有统计信息(及更多信息)。然后,您可以根据需要将所有这些复制回工作表,并在完成后删除添加的工作表。

(请参阅-我告诉过您,这可能会造成过大杀伤力。)

如果您不介意使用宏,则可以创建一个用户定义的函数,该函数将返回所需的信息。以下是可以使用的一种:

Function Stats(R As Range, Op As String) As Long     Dim sTemp As String     Dim c As Range     Dim sOp As String

Stats = 0     On Error GoTo Done     sOp = UCASE(Op)

Select Case sOp         Case "AVG"

Stats = WorksheetFunction.Average(R)

Case "CNT"

For Each c In R                 If Not IsEmpty(c.Value) Then Stats = Stats + 1             Next c         Case "MIN"

Stats = WorksheetFunction.Min(R)

Case "MAX"

Stats = WorksheetFunction.Max(R)

Case "SUM"

Stats = WorksheetFunction.Sum(R)

Case Else             sTemp = "This function requires two parameters. "

sTemp = sTemp & "The first is the cells you want evaulated. "

sTemp = sTemp & "The second is the operation you want "

sTemp = sTemp & "performed. You can use the following "

sTemp = sTemp & "operations:" & vbCrLf & vbCrLf             sTemp = sTemp & "   AVG (average)" & vbCrLf             sTemp = sTemp & "   CNT (count of cells with values)" & vbCrLf             sTemp = sTemp & "   MIN (minimum)" & vbCrLf             sTemp = sTemp & "   MAX (maximum)" & vbCrLf             sTemp = sTemp & "  * SUM (sum)" & vbCrLf             MsgBox sTemp     End Select Done:

End Function

要使用该功能,只需在单元格中输入类似于以下内容的内容:

=Stats(B3:B7, "Min")

通过查看宏,您可以找出可以通过第二个参数传递给函数的各种操作代码。用户定义的函数以其自己的方式似乎也有些过分。为什么?因为您可以简单地使用正则公式来获取所需的信息:

=MIN(B3:B7)

相反,您可能想创建一个与快捷键绑定的宏。然后可以将其与选择的任何单元格一起使用,以将所需的信息填充到剪贴板中:

Sub StatClip()

Dim sTemp As String     Dim R As Range     Dim f As Variant     Dim obj As New DataObject

Set R = Selection     Set f = Application.WorksheetFunction

sTemp = "Address:" & vbTab & R.Address & vbCrLf     sTemp = sTemp & "Average:" & vbTab & f.Average(R) & vbCrLf     sTemp = sTemp & "Count: " & vbTab & f.Count(R) & vbCrLf     sTemp = sTemp & "Min: " & vbTab & f.Min(R) & vbCrLf     sTemp = sTemp & "Max: " & vbTab & f.Max(R) & vbCrLf     sTemp = sTemp & "Sum: " & vbTab & f.Sum(R) & vbCrLF

obj.SetText sTemp     obj.PutInClipboard End Sub

请记住,您要将此宏分配给键盘快捷键。这样,当您在工作表中选择了一些单元格时,就可以调用它(使用快捷方式)。如果在尝试运行宏时遇到错误,则毫无疑问,因为您没有为项目启用Microsoft Forms 2.0对象库。您将需要在VBA编辑器中选择“工具” |“工具”。启用必需库的参考。

当您实际调用宏时,它将看起来好像什么都没有发生。这是正常的;请记住,信息被填充到剪贴板中。宏运行后,您需要选择其他单元格,然后按Ctrl + V将这些剪贴板内容粘贴到工作表中。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(6232)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。