And*_*Ion 2 excel vba excel-vba
我对一段代码有些问题.必须选择范围时出错
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim valrand As Long
If Intersect(Target, ActiveCell) = "Insert line" Then
valrand = ActiveCell.Row
If Worksheets("IR").Cells(valrand, 18).Value <> 5 Then
Sheets("Format").Select
MsgBox ("Format")
Range("A13:N13").Select 'here's the error
Selection.Copy
Sheets("IR").Select
Range("A" & valrand + 2 + Worksheets("IR").Cells(12, 18) & ":N" & valrand + 2 + Worksheets("IR").Cells(12, 18)).Select
Selection.Insert Shift:=xlDown
Range("A38:N38").Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
Range("A5").Select
contor = Worksheets("IR").Cells(12, 18).Value + 1
Worksheets("IR").Cells(12, 18).Value = contor
End If
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
在哪里我把commet"这里的错误"它给了我"Range类的选择方法失败"我做错了什么?通常这段代码在我添加到SelectionChange代码块之前有效.谢谢!
你应该考虑避免Select在使用Sheet代码时(最好完全避免它,稍后再详细说明)并使用类似的东西
Application.Goto Sheets("Format").Range("A13:N13")
Run Code Online (Sandbox Code Playgroud)
(我曾尝试完全限定参考资料但这只有在我使用时才有效
Sheets("Format").Select
Sheets("Format").Range("A13:N13").Select
Run Code Online (Sandbox Code Playgroud)
这显然是矫枉过正)
虽然这可以解决您的问题,但您应该考虑整合代码
Select语句这是一个可以更好地工作的例子(现在没有工作表激活)
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim lngRand As Long
Dim rng1 As Range
Set ws1 = Sheets("Format")
Set ws2 = Sheets("IR")
If Intersect(Target, ActiveCell) = "Insert line" Then
lngRand = ActiveCell.Row
If ws2.Cells(lngRand, 18).Value <> 5 Then
Application.EnableEvents = False
Set rng1 = Range("A" & lngRand + 2 + ws2.Cells(12, 18))
'extend rng1 from column A to colum N
Set rng1 = rng1.Resize(rng1.Rows.Count, 14)
ws2.Range(rng1.Address).Insert xlDown
'copy Format to IR
ws1.Range("A13:N13").Copy ws2.Range(rng1.Address)
'Update Format
ws2.Range("A38:N38").Delete Shift:=xlUp
ws2.Cells(12, 18).Value = ws2.Cells(12, 18).Value + 1
Application.EnableEvents = True
End If
End If
End Sub
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1862 次 |
| 最近记录: |