【发布时间】:2016-01-22 03:04:23
【问题描述】:
您好,我在将单元格范围定义为变量时遇到问题,具体取决于哪组单元格发生了变化。到目前为止,我有这个但它发送了多个错误,我尝试将它们作为字符串传递并创建临时变量来保存值并传递它,但无论如何它似乎都不起作用。
Private Sub Worksheet_Change(ByVal Target As Range)
If Not (Application.Intersect(Worksheets("Sheet1").Range("A:E"), Target) Is Nothing) Then
DoSort("A3:F100", "A4")
End If
If Not (Application.Intersect(Worksheets("Sheet1").Range("H:L"), Target) Is Nothing) Then
DoSort("H3:M100", "H4)
End If
End Sub
Sub DoSort(x As Range, y As Range)
With ThisWorkbook.Sheets("Sheet1")
.Range(x).Sort Key1:=.Range(y), Order1:=xlAscending, Header:=xlYes
End With
End Sub
当我像这样对单元格进行硬编码时,我已经让它工作了:
Private Sub DoSort2()
With ThisWorkbook.Sheets("Sheet1")
.Range("H3:M100").Sort Key1:=.Range("H4"), Order1:=xlAscending, Header:=xlYes
End With
End Sub
从来没有真正在 VBA 中使用 excel 宏工作过,所以我对此很陌生,所以任何帮助都将不胜感激!
【问题讨论】: