是否可以根據每個范圍滿足既定標準來選擇多個范圍?
例如我在excel中有12個范圍,如果范圍包含資料,我只想選擇要包含的范圍
如果范圍 1 和 3 有資料而范圍 2 沒有資料,我想選擇不包括范圍 2 的范圍(1,3)
這可以用excel的vba代碼完成嗎
uj5u.com熱心網友回復:
您可以使用 Union 函式完成此操作。
此代碼將遍歷 Range 引數中顯示的一系列單元格,然后僅選擇那些非空的單元格。
Sub selectSomes()
Dim aCell As Range, zRange As Range
For Each aCell In Range("A5:J5").Cells
If Not IsEmpty(aCell) Then
If zRange Is Nothing Then
Set zRange = aCell
Else
Set zRange = Union(zRange, aCell)
End If
End If
Next aCell
zRange.Select
End Sub
uj5u.com熱心網友回復:
選擇非空白范圍
- 如果至少有一個單元格不為空,則該范圍將被“添加”。
Option Explicit
Sub SelectNonBlankRanges()
Dim wb As Workbook: Set wb = ThisWorkbook ' workbook containing this code
Dim ws As Worksheet: Set ws = wb.Worksheets("Sheet1") ' adjust
Dim rg As Range
Set rg = Union(ws.Range("Zone1"), ws.Range("Zone2"), ws.Range("Zone3"), _
ws.Range("Zone4"), ws.Range("Zone5"), ws.Range("Zone6"), _
ws.Range("Zone7"), ws.Range("Zone8"), ws.Range("Zone9"), _
ws.Range("Zone10"), ws.Range("Zone11"), ws.Range("Zone12"))
Dim prg As Range
Dim arg As Range
' Combine the non-blank ranges into a multi-range.
For Each arg In rg.Areas
'Debug.Print arg.Address, Application.CountBlank(arg), arg.Cells.Count
If Application.CountBlank(arg) < arg.Cells.Count Then
If prg Is Nothing Then
Set prg = arg
Else
Set prg = Union(prg, arg)
End If
End If
Next arg
If prg Is Nothing Then Exit Sub
ws.Activate
prg.Select
MsgBox "Range '" & prg.Address(0, 0) & "' selected.", vbInformation
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/361280.html
下一篇:命名表和創建超鏈接
