相关疑难解决方法(0)

VB Clear Scripting.Dictionary对象

我正在编写Excel宏,我在清除Scripting.Dictionary对象时遇到问题:

Dim test As Integer
test = CompListDict.Count
CompListDict.RemoveAll
Set CompListDict = Nothing
Set CompListDict = CreateObject("Scripting.Dictionary")
Dim test1 As Integer
test1 = CompListDict.Count
Run Code Online (Sandbox Code Playgroud)

在我这样做之前,我将项目添加到字典中,然后我尝试清除它,但test1将等于测试并等于我添加的nr个对象.

我究竟做错了什么 ?谢谢!

excel vba excel-vba

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

从列中查找值并快速返回其单元格的行号

是)我有的

我有一个包含零件号的文件和每个零件的几个供应商.共有1500个零件,每个零件有20个可能的供应商.为简单起见,我们假设部件列在A列中,每个供应商在此之后占据一列.供应商下的值是手动输入的,但并不重要.

在另一个工作表中,我有一个从Access数据库导入的部件列表.导入零件清单,但不导入供应商信息.在这两种情况下,每个部分只出现一次.

我想做的事

我只想将第一张表中的供应商信息与导入列表中的部件相匹配.现在,我有一个功能,它通过供应商遍历列表中的每个部分,将供应商信息复制到一个数组中,在导入的部件列表中找到部件号(总是有一个唯一匹配)并将数组复制到它旁边(内有供应商信息).有用.不幸的是,每次使用它时,find函数都会显着减慢.我知道它是通过各种测试的罪魁祸首,我无法理解为什么它减慢速度(从每秒200次循环迭代开始,减慢到每秒1次并且Excel崩溃).我可能有某种泄漏?文件大小始终为7mb.这里是:

Function LigneNum(numAHNS As String) As Integer
    Dim oRange As Range, aCell As Range
    Dim SearchString As String

    Set oRange = f_TableMatrice.Range("A1:A1500")
    SearchString = numAHNS

    Set aCell = oRange.Find(What:=SearchString, LookIn:=xlValues, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False)

    If Not aCell Is Nothing Then
        'We have found the number by now:
            LigneNum = aCell.Row
        Exit Function
    Else
        MsgBox "Un numéro AHNS n'a pas été trouvé: " & SearchString
        Debug.Print SearchString & " not found!"
            LigneNum = 0 …
Run Code Online (Sandbox Code Playgroud)

excel vba excel-vba

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

搜索特定列标题,复制列并粘贴到另一个工作簿

如何使用这些列标题名称"TOOL CUTTER"和"HOLDER"复制列(仅限数据)并将它们(作为一个附加在一个列中,每个列具有相同的列标题名称)粘贴到另一个工作簿表中,其中VBA代码(表格模块)是.谢谢.

该行"If Sht <> "masterfile.xls" Then是问题发生的地方.我得到了另一个在线来源的帮助,这条线If ws.name <> me.name Then显然我本来想在这里写一个不同的名字,但我无法弄清楚是什么.

不需要这种解决方法,这正是我现在所拥有的.

我打开多个文件,这就是为什么我主要使用ActiveSheet方法而不是Sheet1 Sheet2.我的代码所在的文件名为"masterfile.xls"

任何帮助是极大的赞赏!!

在此处找到以前的代码大纲帮助:搜索特定列标题名称,复制列并粘贴以附加到另一个wookbooksheet

Sub LoopThroughDirectory()

    Dim objFSO As Object
    Dim objFolder As Object
    Dim objFile As Object
    Dim MyFolder As String
    Dim Sht As Worksheet
    Dim i As Integer
    Dim LastRow As Integer, erow As Integer

    'Speed up process by not updating the screen
    'Application.ScreenUpdating = False

    MyFolder = "C:\Users\trembos\Documents\TDS\progress\"

Set Sht = ActiveSheet

    'create an instance of the FileSystemObject
    Set objFSO …
Run Code Online (Sandbox Code Playgroud)

excel vba header copy-paste excel-vba

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

标签 统计

excel ×3

excel-vba ×3

vba ×3

copy-paste ×1

header ×1