此代码在模块内部,当我选择一个单元格然后按下我的按钮“删除注释”时它被激活。我试图写这个是不断的错误所以我转向谷歌并尝试了别人的方法,使用过滤,但它不会工作,我不喜欢它如何激活包含表格的表格,所以我给了它另一个去写我自己的代码,让它几乎工作。
如果我更改此行:
If .DataBodyRange.Cells(Counter, .ListColumns("Name").Index) = EmployeeName And .DataBodyRange.Cells(Counter, .ListColumns("Date").Index) = SelectedDate Then .ListRows(Counter).Delete 对此,然后宏工作但显然删除了与该日期相关联的所有名称而不是工作表“日历”中单元格“B3”中的名称
If .DataBodyRange.Cells(Counter, .ListColumns("Date").Index) = SelectedDate Then .ListRows(Counter).Delete 如果我将其更改为此,我会收到类型不匹配错误
If .DataBodyRange.Cells(Counter, .ListColumns("Name").Index) = EmployeeName 完整代码如下
Dim Counter As Integer, EmployeeName As Integer, LastRow As Integer, SelectedDate As Date
If Intersect(ActiveCell, range("D12:AS23")) Is Nothing Then
MsgBox "Please select a date.", , "Error"
Exit Sub
Else
If Sheets("Settings").range("Protected") = 2 Then
With Sheets("Calendar")
SelectedDate = Cells(ActiveCell.Row, 2) - 1 + ActiveCell.Value
EmployeeName = range("B3")
End With
With Sheets("Notes").ListObjects("TblNotes")
LastRow = .range.Rows.Count
For Counter = LastRow To 1 Step -1
If .DataBodyRange.Cells(Counter, .ListColumns("Name").Index) = EmployeeName And .DataBodyRange.Cells(Counter, .ListColumns("Date").Index) = SelectedDate Then
.ListRows(Counter).Delete
End If
Next Counter
End With
Else
'do nothing
End If
End If
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。