|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
向各位老师请教
代码如下
问题:
当单独写入第一段代码,或是第二段代码时,运行OK
当将全部代码都写入时
1、先双击满足第一段代码的单元格,运行OK;
2、但如果先双击满足第二段代码的单元格后再双击满足第一段代码的单元格,报错;
3、无论何种操作,双击满足第二段代码的单元格时,运行OK;
文件如附件
谢谢
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)'双击单元格时触发
Dim i As Integer
Dim x As Integer
Dim y As Integer
Dim z As Integer
If Target.Column > 17 Then 'decide if the target cell is component '如果双击的单元格列标大于17
For i = 0 To 1500 Step 1 'check with in 1500 rows' area '并且双击的目标单元格行标满足=i+5
If Target.Row = 5 + 9 * i Then
Sheets("Manual P").Select '跳转到Sheets"Manual P"
x = Sheets("Manual P").Range("b:b").Find(Sheets("ATP").Cells(Target.Row, "d").Value).Row '给x赋值为双击的目标单元格的值在Sheets"Manual P"中B列所在位置的行数
y = Sheets("Manual P").Range("4:4").Find(Sheets("ATP").Cells(4, Target.Column).Value).Column '给y赋值为双击的目标单元格的值在Sheets"Manual P"中B列所在位置的列数
Sheets("Manual P").Cells(x, y).Select '选中单元格(x,y)
Exit For
End If
Next
End If
If Target.Column = 8 Then '如果双击的单元格列标等于8
If Sheets("ATP").FilterMode Then '同时表格ATP有筛选
Sheets("ATP").ShowAllData '取消筛选
End If
z = Sheets("ATP").Columns("d").Find(what:=Target.Value, LookIn:=xlValues).Row + 7 'get the row NO. of target cell in column D
'给z赋值为双击的目标单元格的值在Sheets"Manual P"中B列所在位置的行数+7
Sheets("ATP").Cells(z, "d").Select '选中单元格(z, "d")
End If
End Sub
|
|