Bra*_*son 5 excel vba excel-vba
我有一个工作表,里面有一些数据.为了简化将其添加到电子邮件中,我创建了一些代码,按下按钮会选择一系列单元格并将其保存为图像以上传到电子邮件中.目前的代码如下:
Sub Button3_Click()
'
' Button3_Click Macro
'
'
Range("A1:D43").Select
ActiveWindow.SmallScroll Down:=-39
Selection.CopyPicture Appearance:=xlScreen, Format:=xlBitmap
End Sub
Run Code Online (Sandbox Code Playgroud)
我想使用不同的单元格来引用该范围.因此,例如在单元格J1中,我将插入"A1",在卖出K1中,我将插入"D43"以查找我的范围,因此可以更新范围而无需编辑代码.这可能吗?谢谢!
欢迎来到Stackoverflow :)
A1可以写成Range("J1").Value,D43也可以写成Range("K1").Value.所以"A1:D43"可以写成Range("J1").Value & ":" & Range("K1").Value
只需更换Range("A1:D43").Select与Range(Range("J1").Value & ":" & Range("K1").Value).Select
顺便说一句,避免使用.Select.您可能希望查看如何避免在Excel VBA中使用"选择"
您的代码可以写成
Range(Range("J1").Value & ":" & Range("K1").Value).CopyPicture _
Appearance:=xlScreen, Format:=xlBitmap
Run Code Online (Sandbox Code Playgroud)
我假设并且Range("J1")与Range("K1")您想要进行选择的页面相同.如果没有那么完全限定细胞.例如
Sheet1.Range(Sheet2.Range("J1").Value & ":" & Sheet2.Range("K1").Value)
Run Code Online (Sandbox Code Playgroud)
变更Sheet1并Sheet2适用.
正如jeeped在他的帖子中所示,你也可以写上面的内容
Sheet1.Range(Sheet2.Range("J1").Value, Sheet2.Range("K1").Value).CopyPicture _
Appearance:=xlScreen, Format:=xlBitmap
Run Code Online (Sandbox Code Playgroud)