Q:前不久有网友问我,在工作表的一列中,有些单元格放置有图片,有些单元格为空,如何识别带有图片的单元格并输入相应的文字?如所示,对工作表Sheet1的列B中含有图片的单元格,输入“有图片”,而没有图片的单元格则输入“无图片”,效果如列G所示。
A:下面的代码可以完成我们的需求:
Sub DecidePic()
Dim cell As Range
Dim lngCells As Long
Application.ScreenUpdating = False
‘设置查找列的单元格数
lngCells = 3
For Each cell In Range(“B2:B”& lngCells)
If PicIfExists(Sheet1, cell) Then
cell.Value = “有图片”
Else
cell.Value = “无图片”
如何按excel顺序自动分配数字编号?
Q:在进行学生入学登记时,如何为不同的班级自动按顺序分配学号。如下所示,在登记学生姓名,并分配班级后,给该学生自动按顺序分配学号。 A:使用公式来解决。 因为分类是是确定的,因此可以先构建一个分类表供查询,如下所示。在工作表“分类”中,列A是班级名称,列B是想要的学号编号前缀。并且,将列A中的数据命名为“班级”
End If
Next cell
Application.ScreenUpdating = True
End Sub
Function PicIfExists(wks As Worksheet, rng As Range) As Boolean
Dim shp As Shape
For Each shp In wks.Shapes
If shp.TopLeftCell.Address =rng.Address Then
PicIfExists = True
Exit For
End If
Next shp
End Function
在自定义函数PicIfExists中,使用Shape对象的TopLeftCell属性来获取图片所在单元格的地址,然后与单元格相比较,以判断单元格中是否含有图片。
excel矩阵数据在工作表中绘制线条?
Q:如下所示,左侧是一个4行4列的数值矩阵,要使用VBA根据这些数值绘制右侧的图形。 绘制规则是这样的:找到最小的数值(忽略),将其与第2小的数值用点划线连接,再将第2小的数值与第3小的数值用点划线连接,依此类推,直到连接到最大的数值。在连接的过程中,遇到不连接,如果两个要连接的数值之间有其他数,则从这些数值上直