【问题标题】:Excel vba prevent dragging worksheet orderExcel vba防止拖动工作表顺序
【发布时间】:2013-06-15 23:44:35
【问题描述】:

有没有一种 vba 方法可以防止重新排列工作表?例如:Sheet1、Sheet2、Sheet3 不能拖动到 Sheet3、Sheet2、Sheet1 的新顺序。

例如:我有代码 Sheet1.cells(1, 1).value 并通过重新排列工作表来更改对象引用。我需要禁用它,这样用户就不会无意中破坏代码。也许是计划失败,但我仍然坚持这一点,直到可以重写为止。

如果可能的话,需要 2003 年、2007 年、2010 年及以后的解决方案。

我在网络、对象浏览器或 stackoverflow 上没有看到任何主题或解决方案,因此非常感谢您提供的帮助/参考。

谢谢。

【问题讨论】:

  • 将工作表拖动到其他位置不会更改其代号,只会更改其Index 属性。
  • @AlexandreP.Levasseur 就像我说的现在不可能,我希望它是。不过我知道你来自哪里。
  • 使用工作表名称是使用索引的一个很好的替代方法。设置 ws = Sheets("sheet_name")
  • @SamWard 我需要能够让用户更改工作表名称我会这样做。谢谢。

标签: vba excel


【解决方案1】:

我发现代码有问题。

Main 1

Sub Main(sheetIndex as integer)

Dim ws as worksheet
Dim x as String

    Set ws = Sheets(sheetIndex)

    x = ws.Cells(1, 1).value

End sub 

改为:

Main Sheet1

Sub Main(sheetIndex as Object)  

Dim x as String      

    x = sheetIndex.Cells(1, 1).value

End sub 

现在重新排列工作表不会破坏代码。现在我需要挖掘代码并找到更多实例。谢谢蒂姆,亚历山大。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-01-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多