RError.com

RError.com Logo RError.com Logo

RError.com Navigation

  • 主页

Mobile menu

Close
  • 主页
  • 系统&网络
    • 热门问题
    • 最新问题
    • 标签
  • Ubuntu
    • 热门问题
    • 最新问题
    • 标签
  • 帮助
主页 / 问题 / 765365
Accepted
yurasja
yurasja
Asked:2020-12-31 19:39:09 +0000 UTC2020-12-31 19:39:09 +0000 UTC 2020-12-31 19:39:09 +0000 UTC

在 Excel VBA 中激活工作表的问题

  • 772

各位论坛用户您好!我有一个带有两个选项卡的 excel 文件。当您双击第一个选项卡中的单元格时,会出现一个显示一些数据的表单。表单上有两个按钮。当您单击一个表单时,它会关闭,这里没有问题。当您单击第二个时,将在第二个工作表上启动一个单元格搜索宏。单元格位于,显示在屏幕中间,带有找到的单元格的第二张表被激活,表单关闭。从这里开始最有趣和最难以理解的事情。当我尝试使用滚轮滚动工作表时,没有任何反应。单元格不会向上或向下移动。此外,滚动条对滚轮的旋转做出反应,并且单元格在第一张纸上移动,当前未在屏幕上显示。只要我点击第一张,然后返回到第二张,工作就恢复了。文件在这里:https://cloud.mail.ru/public/7Tms/2wH2Wznrb

vba
  • 3 3 个回答
  • 10 Views

3 个回答

  • Voted
  1. Best Answer
    vikttur_Stop_RU_war_in_UA
    2020-01-04T00:45:53Z2020-01-04T00:45:53Z

    错误不会重现。它看起来像缺乏视频内存,一般的内存。

    严重错误:

    过程中的变量

    Dim wh_Sheet2612 As Worksheet
    

    全局变量

    Public wh_Sheet2612 As Worksheet
    

    找出差异...过程级变量在不同的过程中可以具有相同的名称,模块级变量在不同的模块中可以具有相同的名称...但是如果这些变量重叠,则不能为变量赋予相同的名称!

    我们吃记忆。

    很多额外的任务,没有它们你可以放心地做。

    Set переменная = объект
    

    此行分配一个内存区域来存储对象。如果内存在使用后没有被强制释放,该区域可能仍然被占用。分配的越多,被切断的内存就越多。因此,在完成代码的主要部分之后,必须释放内存。

    Set переменная = Nothing
    

    过程级变量。它们占用内存直到程序结束。

    公共变量(Public)。它们在工作簿打开时占用内存,只有在关闭后才释放。如果可以不用,最好不要使用。

    例如,将所需汽车的号码转移到搜索程序。不需要公共变量,可以将值传递给过程:

    Private Sub cb_2612_Click()
        FindNumber.Поиск_ячейки_с_номером_вагона (ActiveCell.Value)
        Unload MsgForm
    End Sub
    

    搜索本身可以通过占用最少的内存来促进(在您的版本中,工作表被激活两次;三个对象被驱动到变量中;您可以使用一个变量作为最后一行和搜索行的编号):

    ' номер вагона передаем прямо в процедуру'
    Sub Поиск_ячейки_с_номером_вагона(sNum As String)
        Dim int_Row As Long
    
        With Sheets("2612")
            ' определяем последнюю заполненную строку'
            int_Row = .Cells(.Rows.Count, 1).End(xlUp).Row
            If int_Row < 2 Then MsgBox "Нет данных", 64, "УВЫ!": Exit Sub
    
            ' ищем в диапазоне номер вагона'
            int_Row = .Range("A2:A" & int_Row).Find(What:=sNum, _
                            LookIn:=xlValues, LookAt:=xlPart, MatchCase:=True).Row
    
            .Activate ' активируем лист'
            .Cells(int_Row, 1).Activate ' активируем строку с номером вагона'
        End With
    End Sub
    

    搜索速度很快,为什么需要ProgressBar?为了更多的喘息?)

    一路上。

    不必为每个宏创建单独的模块。所以你会更加困惑。

    一些程序可以合并为一个。例如,PredpriyatiyePoslednego*。3个或4个代码是一样的,只是变量变了。

    在代码中,最好使用工作表的内部名称,否则可能会在狡猾的用户重命名工作表后崩溃。

    在工作表事件过程中,您可以设置响应范围。没有必要写“如果我们点击一​​个不包含车号的单元格”......

    不必清除这些行,而是删除它们。在不允许删除行的情况下,清除范围。帮助表上有超过 35,000 条自定义范围线(1221 条数据线)。这是文件的额外权重,处理数组时的额外范围......

    一般来说,你可以写很多......问题的作者应该很高兴 - 有成长的空间)

    • 1
  2. Сергей
    2020-06-13T11:10:16Z2020-06-13T11:10:16Z

    我解决了这个问题,可能不是很聪明,但它有效!简而言之,您需要在激活过程中不使用滚轮滚动的工作表的根部注册此工作表的激活,我尝试了我所知道的一切,只有这有帮助。然而,它在您选择任何单元格后工作在选定的工作表上。

    • 1
  3. yurasja
    2020-06-20T17:07:37Z2020-06-20T17:07:37Z

    看来这个问题在微软员工的努力下得到了解决。看起来 Office 更新成功了。Windows 10、Office 2016 - 无需我干预即可运行!

    • 1

相关问题

Sidebar

Stats

  • 问题 10021
  • Answers 30001
  • 最佳答案 8000
  • 用户 6900
  • 常问
  • 回答
  • Marko Smith

    Python 3.6 - 安装 MySQL (Windows)

    • 1 个回答
  • Marko Smith

    C++ 编写程序“计算单个岛屿”。填充一个二维数组 12x12 0 和 1

    • 2 个回答
  • Marko Smith

    返回指针的函数

    • 1 个回答
  • Marko Smith

    我使用 django 管理面板添加图像,但它没有显示

    • 1 个回答
  • Marko Smith

    这些条目是什么意思,它们的完整等效项是什么样的

    • 2 个回答
  • Marko Smith

    浏览器仍然缓存文件数据

    • 1 个回答
  • Marko Smith

    在 Excel VBA 中激活工作表的问题

    • 3 个回答
  • Marko Smith

    为什么内置类型中包含复数而小数不包含?

    • 2 个回答
  • Marko Smith

    获得唯一途径

    • 3 个回答
  • Marko Smith

    告诉我一个像幻灯片一样创建滚动的库

    • 1 个回答
  • Martin Hope
    Air 究竟是什么标识了网站访问者? 2020-11-03 15:49:20 +0000 UTC
  • Martin Hope
    Алексей Шиманский 如何以及通过什么方式来查找 Javascript 代码中的错误? 2020-08-03 00:21:37 +0000 UTC
  • Martin Hope
    Qwertiy 号码显示 9223372036854775807 2020-07-11 18:16:49 +0000 UTC
  • Martin Hope
    user216109 如何为黑客设下陷阱,或充分击退攻击? 2020-05-10 02:22:52 +0000 UTC
  • Martin Hope
    Qwertiy 并变成3个无穷大 2020-11-06 07:15:57 +0000 UTC
  • Martin Hope
    koks_rs 什么是样板代码? 2020-10-27 15:43:19 +0000 UTC
  • Martin Hope
    user207618 Codegolf——组合选择算法的实现 2020-10-23 18:46:29 +0000 UTC
  • Martin Hope
    Sirop4ik 向 git 提交发布的正确方法是什么? 2020-10-05 00:02:00 +0000 UTC
  • Martin Hope
    faoxis 为什么在这么多示例中函数都称为 foo? 2020-08-15 04:42:49 +0000 UTC
  • Martin Hope
    Pavel Mayorov 如何从事件或回调函数中返回值?或者至少等他们完成。 2020-08-11 16:49:28 +0000 UTC

热门标签

javascript python java php c# c++ html android jquery mysql

Explore

  • 主页
  • 问题
    • 热门问题
    • 最新问题
  • 标签
  • 帮助

Footer

RError.com

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

帮助

© 2023 RError.com All Rights Reserve   沪ICP备12040472号-5