有条件地选择多个分隔的范围



我有一个Excel电子表格工具来生成许可证图像(.png文件(,这些图像使用蜡树脂到PVC打印机打印。

我希望同时有条件地选择多达八个特定的非连续范围集群。如果定义的单元格有内容,请选择范围簇。

类似于:

如果E4不为空,则选择D3:G18
如果L4不为空则选择K3:M18
,如果S4不为空而选择R3:U18
Y4不为空时选择X3:Z18
如果E24不为空白则选择D23:G38
L24不为空则选择K23:M38
S24为空则不选择R23:U38
Y24为空时不选择X23:Z38

我有选择所有范围集群的代码,但没有";智能";。

Sub Select_Licenses()  
Range("D3:G18,K3:M18,R3:U18,X3:Z18,D23:G38,K23:M38,R23:U38,X23:Z38").Select  
End Sub

您可以使用Application.Union()依次测试每个单元格,以构建要选择的范围。

Sub Tester()
Dim ws as worksheet, rng As Range
Set ws = ActiveSheet

if Len(ws.range("E4").Value) > 0 Then BuildRange rng, ws.Range("D3:G18")
'...
'...
if Len(ws.range("Y44").Value) = 0 Then BuildRange rng, ws.Range("X23:Z38")
if not rng is nothing then rng.select
End Sub
'utility sub for building ranges using Union
Sub BuildRange(ByRef rngTot As Range, rngAdd As Range)
If rngTot Is Nothing Then
Set rngTot = rngAdd
Else
Set rngTot = Application.Union(rngTot, rngAdd)
End If
End Sub

最新更新