A:在VBE中插入一个标准模块...
Q:我原先在工作表中放置了一个图片,现在我想使用新的图片来替换该图片,但是要保持图片的位置和大小不变,如何使用VBA代码实现?
A:在VBE中插入一个标准模块,输入如下代码:
SubChangePicLoc()
On Error GoTo ErrHandle
Dim blnFlag As Boolean
Dim shp As Shape
Dim dblTop As Double
Dim dblLeft As Double
Dim dblHeight As Double
Dim dblWidth As Double
Dim FileToOpen As Variant
‘检查所选取的是形状还是单元格
blnFlag = False
For Each shp In ActiveSheet.Shapes
If shp.Name = Selection.Name Then
blnFlag = True
Exit For
Else
blnFlag = False
End If
Next shp
ErrHandle:
On Error GoTo endHandle
If blnFlag = True Then
With Selection.ShapeRange
‘保存所选图片的属性
dblTop = .Top
dblLeft = .Left
如何将excel数据其转换为正方形?
Q:我怎么知道工作表单元格的默认大小是多少?也就是说,在标准状态下,单元格的长和宽各是多少?如何将其变为正方形? A:在工作表中,当我们将鼠标放置在列之间并变成双向箭头时,按下左键,将会显示单元格的大小,如下和所示,显示单元格的宽度是8.38磅(72像素),高度是13.5磅(18像素)。 可以看到,工作表单
dblHeight = .Height
dblWidth = .Width
End With
‘删除所选图片
Selection.Copy
Selection.Delete
‘插入新图片
FileToOpen =Application.GetOpenFilename
If FileToOpen <> False Then
ActiveSheet.Pictures.Insert(FileToOpen).Select
Else
MsgBox “没有选择图片文件!”
ActiveSheet.Paste
End If
‘将原图片属性应用于新图片
With Selection.ShapeRange
.Top = dblTop
.Left = dblLeft
.Height = dblHeight
.Width = dblWidth
End With
Else
MsgBox “请选择图片,不要选择单元格区域.”
End If
endHandle:
End Sub
首先选取工作表中要替换的图片,然后运行代码,效果如下所示。
如何统计带分隔符的字符串中不重复的子字符串数?
Q:某些情况下,我们可能要统计带有分隔符的字符串中不重复的子字符串数。如下所示,我想知道单元格A1中不重复的数字有几个,应该怎么编写公式? A:下面的数组公式可以完成单元格A1的字符串不重复值的统计: =SUM(N(MATCH(TRIM(MID(SUBSTITUTE(A1,',',REPT('',999)),R