浏览工作表的菜单无法正常工作

时间:2015-09-27 16:46:39

标签: excel vba excel-vba

我创建了一个菜单来浏览工作表。但是,当我使用其中一个按钮转到另一张纸并在另一张纸上键入内容时,我输入的内容会出现在第一张纸上。虽然当我使用标签跳转到另一张纸时,它可以正常工作。似乎是宏正在考虑相对引用而不是绝对引用。

这是我的宏所做的(或至少应该):

Private Sub cadastrar_clientes_Click()
    Application.ScreenUpdating = False
    Menu.Hide
    Sheets("Clientes").Select
    Range("A1048576").Select
    Selection.End(xlUp).Select
    ActiveCell.Offset(1, 0).Range("A1").Select
    ActiveCell.Select
End Sub

注意:

我尝试使用“.activate”而不是“.select” 我曾试图只使用“Sheets(”Clientes“)。选择”,即便如此,也会发生错误。 在Windows CMD上执行“Excel / unregserver”解决了我的问题一次,但我再也无法做到这一点。它似乎不再起作用了。
我做了一次像这样的菜单,但我没有遇到这些问题。

当工作簿打开时,执行以下代码:

Private Sub Workbook_Open()
    Application.DisplayFullScreen = True
    Application.DisplayFormulaBar = False
    ActiveWindow.DisplayHeadings = False
    ActiveWindow.DisplayGridlines = False
    ActiveWindow.DisplayWorkbookTabs = False
End Sub

就是这样。我希望有人可以帮助我。

2 个答案:

答案 0 :(得分:0)

用此更换VBA模块菜单上的所有代码(在您提供的文件中测试)

Option Explicit

Private Sub fechar_menu_Click()
    Menu.Hide
End Sub
Private Sub novo_pedido_Click()
    goToTab ActiveWorkbook.Worksheets("Novo pedido"), "B5"
End Sub
Private Sub ver_pedidos_Click()
    goToTab ActiveWorkbook.Worksheets("Consultar pedido"), "F1"
End Sub
Private Sub cadastrar_clientes_Click()
    goToTab ActiveWorkbook.Worksheets("Clientes")
End Sub
Private Sub cadastrar_produtos_Click()
    goToTab ActiveWorkbook.Worksheets("Produtos")
End Sub
Private Sub cadastrar_transportadoras_Click()
    goToTab ActiveWorkbook.Worksheets("Transportadoras")
End Sub
Private Sub painel_financeiro_Click()
    goToTab ActiveWorkbook.Worksheets("Painel Financeiro"), "B3"
End Sub

Private Sub goToTab(ByRef ws As Worksheet, Optional cel As String = vbNullString)
    Menu.Hide
    Application.ScreenUpdating = False
    With ws
        .Activate
        If Len(cel) = 0 Then
            .Range("A" & .Rows.Count).End(xlUp).Offset(1, 0).Select
        Else
            .Range(cel).Select
        End If
    End With
    Application.ScreenUpdating = True
End Sub

答案 1 :(得分:0)

嗯,我想我现在对这个问题了解得多。我已经在各种计算机上测试了工作簿,并得出结论,问题出在Office 2013中。在运行2007或2010版本时,我似乎没有这个问题。到目前为止,我还没有找到解决方案。我要感谢Paul Bika的帮助。