在下图1所示的工作簿Data.xlsx的工作表Sheet1中,存放着待使用的数据。
图1
在下图2所示的工作簿GetData.xlsm中,根据列C中的数据,在上图1的工作簿Data.xlsx的列E中查找是否存在相应数据的单元格。
图2
然后,将Data.xlsx中对应行的列I至列K单元格中的数据复制到GetData.xlsm相应的单元格中,如下图3所示。
图3
在工作簿GetData.xlsm中,输入代码:
Sub CopyData()
‘关闭屏幕刷新
Application.ScreenUpdating = False
‘声明变量
Dim LastRow As Long
Dim wksData As Worksheet
Dim rng As Range
Dim rngFound As Range
‘赋值为存储数据的工作表
Set wksData =Workbooks(“Data.xlsx”).Sheets(“Sheet1”)
excel图表如何清楚地定位散点图中的数据点
散点图是我们经常使用的一种图表类型,然而,当有许多个数据点时,往往很难弄清楚特定的数据点。其实,使用一些小技巧,我们能够很容易地定位散点图中特定的数据点,如下图1所示。 图1 示例用于绘制散点图的数据如下图2所示。 图2 步骤1:绘制散点图 1.单击功能区“插入”选项卡“图表”组中的散点图,如图3所示
‘判断所选单元格是否在列C中
If ActiveCell.Column<> 3 Then
MsgBox (“请选择列C中的单元格或单元格区域.”)
Exit Sub
Else
‘遍历所选的单元格
For Each rng In Selection
‘在数据工作表中查找相应的值所在的单元格
Set rngFound =wksData.Range(“E:E”).Find(rng, LookIn:=xlValues, lookat:=xlWhole)
‘如果找到
If Not rngFound Is Nothing Then
‘将相关单元格的数据复制到当前工作表相应单元格
rng.Offset(0,4).Resize(1, 3).Value = rngFound.Offset(0, 4).Resize(1, 3).Value
End If
Next rng
End If
‘打开屏幕刷新
Application.ScreenUpdating = True
End Sub
代码中,使用了Find方法来查找数据所在的单元格,使用Offset属性偏移到指定的单元格,使用Resize属性来扩展单元格区域。
注意,要使代码正常运行,应该将两个工作簿都打开。
如何获取Excel图表系列中指定数据点的类别名?
Q:如下图1所示,我根据单元格区域A1:B10中的数据绘制了一个折线图,我现在想用VBA得到该折线图的第5个数据点的分类名(从数据表中可以得出其分类名为“桔子”),如何编写程序实现我的需求? 图1 A:可以使用下面的自定义函数来获得分类轴的类别名: '获取指定图表中指定系列上某数据点类别名 '参数cht:代