Tag: 数组

在Excel中优化这个VBA查找循环

我想优化下面的代码,因为它非常慢。 我正在使用这个答案中find的代码: https : //stackoverflow.com/a/27108055/1042624 但是,在循环+ 10k行时,速度非常慢。 有没有可能优化我的代码在下面? 我试图修改它,但它似乎并没有工作。 Sub DeleteCopy2() Dim LastRow As Long Dim CurRow As Long Dim DestLast As Long Dim strSheetName As String Dim arrVal() As Long Application.ScreenUpdating = False Application.Calculation = xlManual strSheetName = "Week " & ISOWeekNum(Format(Date)) – 1 LastRow = Sheets("MatchData").Range("A" & Rows.Count).End(xlUp).Row DestLast = Sheets(strSheetName).Range("A" & Rows.Count).End(xlUp).Row […]

数组是否包含数据

我在Excel VBA编程。 我有一个文件,我打开一个资源pipe理器窗口,并select一个或多个文件,并将这些文件的名称返回到一个数组。 我需要检查数组是否填充。 我试过, if FileNames(1) <> "" Then ,如果在数组中有东西的工作。 但是当数组为空时,我得到一个type mismatch的错误。 如果我尝试If FileNames <> False Then ,当数组中没有任何东西,但是当数组中有东西给我的type mismatch错误。 我有像Dim FileNames一样的正常variables数组,但我已经尝试Dim FileNames() as String也没有成功。 是否select文件我得到type mismatch错误。 这里是我得到的代码: sub GetUserInfo() Dim FileNames FileNames = Select_File_Or_Files_Windows 'This opens the Explorer window and allows you to pick multiple files If FileNames(1) <> "" Then 'Do something Else […]

variables会在macros终止的时候持续吗?

我设置了一个excel / vbamacros,我想在循环中将数字追加到数组中。 然而,我想arrays坚持从macros使用到macros使用(即,如果数组在我星期二运行macros时被[1,3,5]填充,并且我在周三再次运行macros并追加8,9和10,那么数组需要[1,3,5,8,9,10])。 这是否可以在VBA中完成(即使整个Excel表单已closures,以后再重新打开,尽pipe它在closures之前保存)?

计算在excel范围内使用的值

我正在尝试创build一个excel模板,以便当用户将数据复制到“帐户configuration文件”选项卡中时,将计算其中包含内容的最后一行,并将此值用于其他工作表上的公式。 这个公式用数据计算最后一行: =LOOKUP(2,1/('Account Data'!A:A<>""),ROW('Account Data'!A:A)) 这工作正常,麻烦来了,当我尝试使用结果作为范围参考:我想我的公式从第2行 – >行(LOOKUP的值) =COUNTIF('Account Data'!$N$2:$N$991,A8) 我想用“LOOKUP”公式的结果代替“991”,使范围总是正确的。 我确信有一个简单的方法,但我已经尝试了一段时间,无法弄清楚应该是什么语法。

将公式应用于单元格使用VBA定义的数组

确实有更简单的方法来实现这个代码试图做的事情,但是我创build了一个简化的代码来展示我正在尝试实现的内容。 基本上我想对大量的数据进行计算,我不想不得不把它添加到工作表。 所以基本上我需要通过使用我在我的macros中定义的数组,在工作表中运行像sum,averageifs等公式。 在这一点上,我不知道如何将这个数组,包含5个值,到“= sum()”函数。 在此先感谢您的帮助! Sub ArraySum() Dim numbers(5) As Double Dim E As Double For I = 1 To 5 E = Cells(I, 1) numbers(I) = Cos(E) Next I Range("b1").Formula = "=sum(" & numbers & ")" End Sub

拆分单元格上加下划线的单词vba

有没有办法使用vba中的拆分function根据带下划线的单词拆分单元格? 如何将分隔符设置为下划线? d = Trim(cell.Value2) arr = Split(d, " ")

从WorkSheet创build包含数据的公用variables

简化的Excel代码: Public MyFile As String Public varSheetA As Variant Public SelRangeA As Range Public wsCopy As Excel.Worksheet Sub SelectFile_Click() MyFile = Application.GetOpenFilename() 'Aquire filepath from user If (MyFile <> "False") Then Range("B1").Value = "File Found" End If End Sub Sub LoadFile_Click() Dim WbOne As Workbook Dim strRangeToCheck As String strRangeToCheck = "A1:T2000" Set WbOne = […]

excel匹配年份和月份

我在列a中有一组date,我想在年份和月份进行匹配。 ABCDEFGHIJ 1 date name Name March April May June July August September 2 13-04-2016 Lars Lars 0 0 0 0 0 0 0 3 04-03-2016 Brian Brian 0 0 0 0 0 0 0 4 01-01-2016 Lars Erik 0 0 0 0 0 0 0 5 10-06-2016 Erik Knut 0 0 0 0 0 […]

分析多个数组并写入所有可能的组合

我正在尝试在Excel中使用VBA将三个数组的内容的所有可能组合写入一个列以创build一个单词表。 目前,我知道如何遍历数组,并得到一些我想要的输出,但我不知道如何构build循环,给我所有可能的baseWord(n)&numberCharSet(n)&specialCharSet(n )。 如何正确地循环baseWord数组以获取每个baseWord与specialCharSet和numberCharSet数组的内容的所有组合? 例如:Cloud1! Cloud1 @ Cloud1#Cloud1 $ Cloud2! 等等… Private Sub createWordlist() Dim baseWord(1 To 2) As String baseWord(1) = "Cloud" baseWord(2) = "cloud" Dim numberCharSet(1 To 4) As String numberCharSet(1) = "1" numberCharSet(2) = "2" numberCharSet(3) = "3" numberCharSet(4) = "4" Dim specialCharSet(1 To 4) As String specialCharSet(1) = "!" specialCharSet(2) = […]

使用For Each循环在数组中添加string

我试图创build一个下拉列表在Excel的帮助下,一个数组。 不幸的是,我的代码存在一些问题(我不会显示我所有的代码,恐怕它太长了)。 下面是添加我想要在数组中的代码的一部分: Dim Range_Protection As Range Dim Row_Range As Range Dim Tableau As Range Dim Protection_First_Value As String Dim Protection_Last_Value As String Dim Array_List() As String Dim Taille_Array As Integer If Not Range_Protection Is Nothing Then 'The value I want to get are String, don't know if I should use "Cells.Text" instead Protection_First_Value = […]