vba - 自动打开一个excel文件到所有工作表中的单元格A1(使用VBA)

标签 vba excel automation

我正在尝试编写 VBA 代码,以便每当我在 excel 中打开任何文件时,它都会自动转到所有工作表中的单元格 A1(无论上次保存时选择了哪些单元格)。我在网上找到了一些建议将以下代码放入我的个人 .xlsb 项目中的内容:

Sub kTest()

    Dim i As Long, s() As String, a As String, n As Long

    With ActiveWorkbook
        For i = 1 To .Worksheets.Count
            a = a & .Worksheets(i).Name
            n = n + 1
            ReDim Preserve s(1 To n)
            s(n) = .Worksheets(i).Name
            If Len(a) > 224 Then
                .Worksheets(s).Select
                .Worksheets(s(1)).Activate
                [a1].Select
                n = 0: a = "": Erase s
            End If
        Next
        If Len(a) Then
            .Worksheets(s).Select
            .Worksheets(s(1)).Activate
            [a1].Select
        End If
        Application.Goto .Worksheets(1).Range("a1")
    End With

End Sub

但是当我打开文件时没有任何 react 。请帮忙!

最佳答案

您不能在每张纸上都转到单元格 A1。但是,如果您想转到单张纸的单元格 A1,您可以执行以下操作。

使用以下代码创建类 ExcelEvents

Option Explicit

Private WithEvents App As Application

Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
    App.Goto Wb.Worksheets(1).Range("A1")
End Sub

Private Sub Class_Initialize()
    Set App = Application
End Sub

并在 ThisWorkbook 添加
Option Explicit

Private xlApp As ExcelEvents

Private Sub Workbook_Open()
    Set xlApp = New ExcelEvents
End Sub

保存工作簿,重新打开它,workbook_open 事件中的代码将运行,这意味着一旦您打开另一个工作簿,代码将转到工作表 1 的单元格 A1

编辑 如果您真的要在每张纸上选择 A1,您可以按如下方式更改代码
Private Sub App_WorkbookOpen(ByVal Wb As Workbook)
Dim sh As Worksheet
    App.ScreenUpdating = False
    For Each sh In Wb.Worksheets
        sh.Select
        sh.Range("A1").Select
    Next
    App.Goto Wb.Worksheets(1).Range("A1")
    App.ScreenUpdating = True
End Sub

关于vba - 自动打开一个excel文件到所有工作表中的单元格A1(使用VBA),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49072210/

相关文章:

regex - 这是用于匹配 Excel 公式中任何单元格引用的正则表达式吗?

excel - 将数据输入列时在excel中播放声音

vba - 如何重复执行 CommandButton1 直到满足条件?

testing - 在 silktest 中获取对象子对象的类型

excel - VBA Excel - 函数卡住

java - Apachie POI 中的 FormulaEvaluator 仅返回空值

vba - 全局变量不能跨类生存?

excel - 在选定单元格上使用 For 循环

javascript - 如何在网站上制作一个按预定时间按钮的脚本(如 pg down 或 space)?

python - 使用python实现自动化交互?