ActiveCell。不在Excel VBA中定位活动单元格

时间:2018-12-13 09:24:13

标签: excel vba excel-vba

我创建了(部分复制了)一个宏,该宏根据第一张工作表中的选择,在第一张和第二张工作表中的同一位置添加了一行。

昨天早晨,它仍然可以正常工作,但是在对所有不同的功能(主要是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

1 个答案:

答案 0 :(得分:0)

感谢您的快速帮助!

停用过滤器后的以下代码解决了我的问题:

Sheets("Overview").Select

开始使用VBA进行进一步的冒险:)