当我从另一个宏“调用”它时,宏不起作用,但是当我单独选择它时,它确实起作用

丽兹·H

我下面有一个格式化宏:

Sub Colour_whole_sheet()

Dim lastRow As Long
Dim lastColumn As Long

lastRow = Range("A1").End(xlDown).Row
lastColumn = Range("A3").End(xlToRight).Column

'Colour alternate rows purple / white
For Each cell In Range(Cells(1, 1), Cells(lastRow, lastColumn))
    If cell.Row Mod 2 = 1 Then
        cell.Interior.Color = RGB(242, 230, 255)
    Else
        cell.Interior.Color = RGB(255, 255, 255)
    End If
Next cell

End Sub

当我从另一个宏调用它时,它不会运行:

Sub Run_macros()

[A bunch of other subs]
Call Colour_whole_sheet
[A bunch of other subs]

End Sub

它不会出现错误-它什么都不做。但是当我单独选择它时,从“视图”>“宏”>“视图宏”>“运行”,它可以正常工作。

你知道为什么会这样吗?

编辑:

Sub Colour_whole_sheet()

Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Calendar")

Dim lastRow As Long
Dim lastColumn As Long

lastRow = ws.Range("A1").End(xlDown).Row
lastColumn = ws.Range("A3").End(xlToRight).Column

'Colour alternate rows purple / white
For Each cell In ws.Range(ws.Cells(1, 1), ws.Cells(lastRow, lastColumn))
    If cell.Row Mod 2 = 1 Then
        cell.Interior.Color = RGB(242, 230, 255)
    Else
        cell.Interior.Color = RGB(255, 255, 255)
    End If
Next cell

End Sub
ᴇʜ

这里Range("A1")没有指定在哪个工作这个范围。始终指定一个工作表中所有Range()Cells()Rows()Columns()对象。

否则,您的代码很有可能在错误的工作表上运行。请注意,这适用于您的所有宏(而不仅仅是此宏)。检查是否在所有地方都指定了工作表,否则代码可能会随机工作或失败。

Dim ws As Worksheet
Set ws = ThisWorkbook.Worksheets("Sheet1") 'your sheet name here

然后调整以下几行:

lastRow = ws.Range("A1").End(xlDown).Row
lastColumn = ws.Range("A3").End(xlToRight).Column

For Each cell In ws.Range(ws.Cells(1, 1), ws.Cells(lastRow, lastColumn))

另请注意,您可以设置Excel表格的格式,以使行以彩色交替显示。


补充说明:

您使用的方法在查找最后使用的行/列时不可靠。最好反过来做。从最后一行开始,然后继续xlUp

lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row 'Last used row
lastColumn = ws.Cells(3, ws.Columns.Count).End(xlToLeft).Column 'last used column in row 3

另外,您不需要遍历所有单元格。循环遍历行即可。

Dim i As Long
For i = 1 To lastRow
    If i Mod 2 = 1 Then
        ws.Rows(i).Interior.Color = RGB(242, 230, 255)
    Else
        ws.Rows(i)..Interior.Color = RGB(255, 255, 255)
    End If
Next i

或者如果您不想为整个行着色,而只为最后使用的列着色

ws.Cells(i, lastColumn).Interior.Color 

请注意,如果有很多行,单独给每行上色会大大降低速度。因此,我建议收集参考中的所有偶数/不偶数行并立即对其进行着色。

lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row 'Last used row
lastColumn = ws.Cells(3, ws.Columns.Count).End(xlToLeft).Column 'last used 

Dim EvenRows As Range
Dim OddRows As Range

Dim i As Long
For i = 1 To lastRow
    If i Mod 2 = 1 Then
        If OddRows Is Nothing Then
            Set OddRows = ws.Rows(i)
        Else
            Set OddRows = Union(OddROws, ws.Rows(i))
        End If
    Else
        If EvenRows Is Nothing Then
            Set EvenRows = ws.Rows(i)
        Else
            Set EvenRows = Union(EvenRows, ws.Rows(i))
        End If
    End If
Next i

If Not OddRows Is Nothing Then OddRows.Interior.Color = RGB(242, 230, 255)
If Not EvenRows Is Nothing Then EvenRows.Interior.Color = RGB(255, 255, 255)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Git 命令在 jenkins 管道中不起作用 - 但是当我在本地运行它时它起作用

来自分类Dev

当我从另一个 Mainstoryboard 添加 containerViews 时,导航不起作用?

来自分类Dev

当我从另一个表中选择计数时,左联接不起作用

来自分类Dev

Java 作业问题:我正在尝试运行我的程序,它没有显示任何错误但是当我尝试运行它时它不起作用?

来自分类Dev

当我添加另一个功能(如通知)时,我的搜索功能将不起作用

来自分类Dev

如何解决此扫描仪问题?我希望这四个动作起作用,但是每当我输入它并单击 Enter 时,它都不起作用

来自分类Dev

当我把它放在服务器上时 JavaScript 不起作用

来自分类Dev

当我有两个条件时宏不起作用

来自分类Dev

当我运行 vbs bot 时它不起作用,因为它无法创建对象那么如何解决它?

来自分类Dev

当我单击另一个x-editable时,x-editable关闭模糊不起作用

来自分类Dev

当我将它分成另一个组件时,React-router Redirect 似乎不起作用

来自分类Dev

当我向其中发送另一个承诺时 promise.then() 不起作用

来自分类Dev

结构中的指针“addr”已分配内存,但是当我在另一个函数中调用它时,它无法工作

来自分类Dev

Gnuplot-脚本内部错误,但是当我正常编写它时,它可以工作,但是脚本不起作用

来自分类Dev

当我将脚本元素放在头部以从URL加载它时,我的Javascript不起作用

来自分类Dev

我是node js的新手,当我回调数据时,它表明回调函数不起作用

来自分类Dev

当我们有一个单独的View控制器时,ItemController不起作用

来自分类Dev

当我从一个片段中调用它时,我的接口类不起作用

来自分类Dev

当我从一个片段中调用它时,我的接口类不起作用

来自分类Dev

我有一个显示来自Sqlite数据库的数据的列表视图,但是当单击它时它不起作用?

来自分类Dev

当我访问它时,这种异步技巧会起作用还是状态会悬空?

来自分类Dev

iOS-当我将两个NSNumber与“ ==”进行比较时,为什么它起作用?

来自分类Dev

当我使用另一个活动返回它时,我增加的变量会自行重置

来自分类Dev

当我使用ToListAsync方法时一个线程不起作用

来自分类Dev

当我有一个按钮时,C#键按下不起作用

来自分类Dev

当我有一个很大的结果时,Postgres 函数不起作用

来自分类常见问题

尝试测试FIFO互斥体-如果我在一个循环中启动测试线程,则不起作用,但是如果我以1 ms的间隔启动它们,则它确实起作用

来自分类Dev

尝试测试FIFO互斥体-如果我在一个循环中启动测试线程,则不起作用,但是如果我以1 ms的间隔启动它们,则它确实起作用

来自分类Dev

当我从状态调用源时,ImageBackground 不起作用

Related 相关文章

  1. 1

    Git 命令在 jenkins 管道中不起作用 - 但是当我在本地运行它时它起作用

  2. 2

    当我从另一个 Mainstoryboard 添加 containerViews 时,导航不起作用?

  3. 3

    当我从另一个表中选择计数时,左联接不起作用

  4. 4

    Java 作业问题:我正在尝试运行我的程序,它没有显示任何错误但是当我尝试运行它时它不起作用?

  5. 5

    当我添加另一个功能(如通知)时,我的搜索功能将不起作用

  6. 6

    如何解决此扫描仪问题?我希望这四个动作起作用,但是每当我输入它并单击 Enter 时,它都不起作用

  7. 7

    当我把它放在服务器上时 JavaScript 不起作用

  8. 8

    当我有两个条件时宏不起作用

  9. 9

    当我运行 vbs bot 时它不起作用,因为它无法创建对象那么如何解决它?

  10. 10

    当我单击另一个x-editable时,x-editable关闭模糊不起作用

  11. 11

    当我将它分成另一个组件时,React-router Redirect 似乎不起作用

  12. 12

    当我向其中发送另一个承诺时 promise.then() 不起作用

  13. 13

    结构中的指针“addr”已分配内存,但是当我在另一个函数中调用它时,它无法工作

  14. 14

    Gnuplot-脚本内部错误,但是当我正常编写它时,它可以工作,但是脚本不起作用

  15. 15

    当我将脚本元素放在头部以从URL加载它时,我的Javascript不起作用

  16. 16

    我是node js的新手,当我回调数据时,它表明回调函数不起作用

  17. 17

    当我们有一个单独的View控制器时,ItemController不起作用

  18. 18

    当我从一个片段中调用它时,我的接口类不起作用

  19. 19

    当我从一个片段中调用它时,我的接口类不起作用

  20. 20

    我有一个显示来自Sqlite数据库的数据的列表视图,但是当单击它时它不起作用?

  21. 21

    当我访问它时,这种异步技巧会起作用还是状态会悬空?

  22. 22

    iOS-当我将两个NSNumber与“ ==”进行比较时,为什么它起作用?

  23. 23

    当我使用另一个活动返回它时,我增加的变量会自行重置

  24. 24

    当我使用ToListAsync方法时一个线程不起作用

  25. 25

    当我有一个按钮时,C#键按下不起作用

  26. 26

    当我有一个很大的结果时,Postgres 函数不起作用

  27. 27

    尝试测试FIFO互斥体-如果我在一个循环中启动测试线程,则不起作用,但是如果我以1 ms的间隔启动它们,则它确实起作用

  28. 28

    尝试测试FIFO互斥体-如果我在一个循环中启动测试线程,则不起作用,但是如果我以1 ms的间隔启动它们,则它确实起作用

  29. 29

    当我从状态调用源时,ImageBackground 不起作用

热门标签

归档