小编kol*_*inx的帖子

如何跨项目重用Core VBA函数(UDF),但不在单元格插入函数中显示它们

我有一个带有"核心"函数和子函数的Addin,我想在不同的Addins或VBA项目中引用和使用它们.由于代码重用和单一更新原则.

例如,一个函数,它根据条件过滤集合成员并返回子集合.代码本身不是问题.

Public Function listNamesContaining(ByVal NamesInput As Names, ByVal ContainsCriteria As String) As Collection
    Dim NameMember As Name

    Set listNamesContaining = New Collection
    For Each NameMember In NamesInput
        If InStr(1, NameMember.Name, ContainsCriteria, vbTextCompare) Then
            listNamesContaining.Add NameMember
        End If
    Next
End Function
Run Code Online (Sandbox Code Playgroud)

我不想在单元格插入函数中显示此函数,因为它返回一个集合对象,但我想在VBA代码中的多个VBA项目中重用它.

当前问题的图片,目标函数显示在单元格插入公式中:

在此输入图像描述

研究

我使用Option Private Statement为单个项目方法找到了解决方案SO1,SO2. 然而,这并没有解决问题,因为其他应用或项目限制.

当模块包含选项专用模块时,在模块级别声明的公共部分(例如,变量,对象和用户定义类型)在包含该模块的项目中仍然可用,但它们不可用于其他应用程序或项目.

接下来,我在MRExcel formum上找到了一个问题- 仅隐藏VBA函数.汤姆·施赖纳建议,我可以使用自定义的类并实现内部的功能.这样,它们将无法通过单元格插入功能获得 …

code-reuse vba excel-vba excel-addins excel-udf

6
推荐指数
1
解决办法
687
查看次数

执行后无限循环中的批处理文件闪烁命令提示符

背景

我想使用ROBOCOPY来备份文件夹.为了解这一点,我创建了一个测试源文件夹,其中包含其他子文件夹和虚拟文件.

F:\RoboCopy\RoboCopy_Files
Run Code Online (Sandbox Code Playgroud)

我能够从命令行和PowerShell(使用Windows 10)ROBOCOPY源文件夹.

ROBOCOPY "RoboCopy_Files" "RoboCopy_Files_Testing" /MIR
Run Code Online (Sandbox Code Playgroud)

它完全符合我的要求.
现在我将命令放入批处理文件中Robocopy.cmd.

问题症状

但是,当我将相同的命令放入Robocopy.cmd文件时,在根F:\ RoboCopy文件夹中运行它,我只得到闪烁的cmd窗口,我的命令在越来越多的行上重复.

如何将命令放入CMD文件(例如Robocopy.cmd)以供以后使用/共享/计划?如何在不运行命令的情况下防止命令提示符在无限循环中闪烁?

注意:我觉得这更像是学习如何将cmd脚本放入文件,而不是如何使用ROBOCOPY.

windows cmd batch-file robocopy

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

一次复制HTML表,而不循环遍历单元格

我想复制HTML表的内容.是否可以在不循环表中的单元格的情况下执行此操作?(我试图避免的例子:在评论'循环每个表并以适当的格式下载到Excel.
我的表不是很大,所以循环是一个选项,如果有更好的选择只是徘徊.


我现在拥有的和建议的方法我更喜欢:

'check all opened windows and find the one with PV output
For Each shlWindow In Shell.Windows
    If TypeName(shlWindow.document) = "HTMLDocument" And shlWindow.LocationName = "PV power estimate information" Then
        Set htmlPopupTables = shlWindow.document.getElementsBytagname("table")
        For Each htmlTabl In htmlPopupTables
            If htmlTabl.classname = "data_table" Then
                ' Question :
                ' htmlTabl.Copy 'or something similar
                ' then paste into my excel sheet
            End If
        Next htmlTabl
    End If
Next
Run Code Online (Sandbox Code Playgroud)

我对HTML没有太多经验,所以即使是显而易见的,也要毫不犹豫地说明.:) 谢谢.

html excel vba excel-vba

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