小编Rya*_*n B的帖子

克服VBA InputBox字符限制

我用来收集文本InputBox的当前函数显然不能接受超过255个字符,我需要能够收集更多吗?我可以用一个参数或不同的功能来增加这个限制吗?

excel vba character limit inputbox

5
推荐指数
1
解决办法
1万
查看次数

Excel VBA函数根据范围中的单元格背景颜色返回真或假

我保留了我的时间表的电子表格,当我遇到并期望达到某些里程碑时.数据(日期)从左到右存储,每个项目都有自己的行.里程碑是永久设定的并且占据范围(O:AA).我的数据颜色编码为绿色(完整),橙色(截止日期),蓝色(不工作),红色(不适用).

我想要做的是编写一个函数来检查单元格是否包含橙色背景(颜色索引6)并根据该函数返回TRUE或FALSE.基本上我想汇总所有列的所有截止日期.最后我想整合一个日期检查,以便我可以看到哪些截止日期即将来临.

Function ScanForColor(Dates As Range) as Boolean
    If ScanForColor.Interior.ColorIndex = 6 Then
        ScanForColor = True
    Else
        ScanForColor = False
End Function
Run Code Online (Sandbox Code Playgroud)

我想在像= ScanForColor(O3:AA3)这样的单元格中调用该函数,我将在AB列中使用ScanForColor函数来保存过滤文档的值.

sorting excel function colors range

4
推荐指数
1
解决办法
3万
查看次数

Worksheet_Activate新表格代码

我有三个关于VBA和控制/操纵新窗口的问题.

我有几张床单.

大师| 工作表1 | 工作表2 | 备注| 工作订单| 联系信息

1)我在Notes,工作订单,联系信息上设置了WorkSheet_Activate功能,可以在单独的窗口中打开所有三个工作表并垂直排列.

Private Sub WorkSheet_Activate()

    ActiveWindow.NewWindow
    ActiveWindow.NewWindow
    Windows.Arrange ArrangeStyle:=xlVertical
    Sheets("Notes").Select
    Windows("Mastersheet.xlsm:2").Activate
    Sheets("Work Orders").Select
    Windows("Mastersheet.xlsm:1").Activate
    Sheets("Contact Info").Select

End Sub
Run Code Online (Sandbox Code Playgroud)

它的问题是,如果我可以再次激活这些表,它将打开更多的窗口.我希望代码能够检测窗口是否已打开,如果是,则会中断.

2)现在,当我导航到不同的工作表(例如Master)时,我希望关闭额外的窗口并使主工作表处于活动状态.我在主表上使用以下代码.

Private Sub WorkSheet_Activate()


    Windows("Mastersheet.xlsm:2").Activate
    ActiveWindow.Close
    Windows("Mastersheet.xlsm:1").Activate
    ActiveWindow.Close
    ActiveWindow.WindowState = xlMaximized

End Sub
Run Code Online (Sandbox Code Playgroud)

这段代码的问题是,如果额外的窗口没有打开,那么它将会出错.我可以进行某种逻辑检查以使其工作吗?我不知道要检查什么值...

3)最后一个问题是工作簿中的宏动态生成了新工作表.这些新的工作表不会带有上面的代码来关闭多个窗口并关注活动表.是否有一个不同的对象,我应该把代码,以便它适用于Master | 工作表1 | Worksheet2表和任何新表?

excel vba worksheet

2
推荐指数
1
解决办法
5373
查看次数

标签 统计

excel ×3

vba ×2

character ×1

colors ×1

function ×1

inputbox ×1

limit ×1

range ×1

sorting ×1

worksheet ×1