我创建了(部分复制了)一个宏,该宏根据第一张工作表中的选择,在第一张和第二张工作表中的同一位置添加了一行。
昨天早晨,它仍然可以正常工作,但是在对所有不同的功能(主要是AutoFilters)进行了一些测试之后,它突然决定不再使用目标单元,而是随机地将目标单元作为目标。由于未知情况,它甚至更改了随机单元格(昨天是第一行中的一个,然后是11中的一个,依此类推)。
我对VBA还是很陌生,非常感谢您对此问题的帮助。
这里是我添加行的代码(删除相同原理的作品):
Sub Add_Row()
Application.ScreenUpdating = False
ActiveSheet.Unprotect
With ActiveWorkbook.ActiveSheet
If .FilterMode Then
.ShowAllData
End If
End With
Sheets("People to Project").Select
ActiveSheet.Unprotect
With ActiveWorkbook.ActiveSheet
If .FilterMode Then
.ShowAllData
End If
End With
r0w = ActiveCell.Row
c0l = ActiveCell.Column
ThisWorkbook.Sheets("Overview").Cells(r0w, c0l).EntireRow.Insert
ThisWorkbook.Sheets("People to Project").Cells(r0w, c0l).EntireRow.Insert
Sheets("Overview").Select
Range(Cells(r0w, 17), Cells(r0w, 48)).Select
Selection.Style = "1. Projectfield"
Sheets("People to Project").Select
ActiveSheet.Unprotect
Range(Cells(r0w, 12), Cells(r0w, 43)).Select
Selection.Style = "1. Projectfield"
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFormattingCells:=True, AllowFiltering:=True
Sheets("Overview").Select
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFormattingCells:=True, AllowFiltering:=True
Application.ScreenUpdating = True
End Sub
答案 0 :(得分:0)
感谢您的快速帮助!
停用过滤器后的以下代码解决了我的问题:
Sheets("Overview").Select
开始使用VBA进行进一步的冒险:)