Tag: 数组

如何以编程方式在多个工作表之间的Excel单元格中查找重复值

例如,我有一张名为EmployeeSheet的工作表,它是公司中每个员工姓名的首个和最后一个列。 让我们假设这个列表是完全格式化的,没有重复,所以每个单元格在这张表中是唯一的。 现在,我为公司中的每个部门都有一个工作表,例如FinanceSheet , ITSheet和SalesSheet 。 每张表都有一个地方(如每张表中没有相同的布局),每个部门的雇员名单。 但是,任何一个员工名称只能在所有部门表单之间出现一次(不包括EmployeeSheet)。 这里是我能想到的解决scheme,但不知道如何实现,将是一个multidimensional array(在学校学习了一点,依稀记得如何使用)。 伪代码类似于: arrEmployees = {"Tom Hanks", "Burt Reynolds", "Your Mom"} arrFinance = {"Tom Hanks"} arrIT = {"Burt Reynolds"} arrSales = {"Your Mom"} arrSheets = {arrEmployees, arrFinance, arrIT, arrSales} 虽然我已经能够通过使用单个单元格值和范围作为string Sheets shts = app.Worksheets; Worksheet ws = (Worksheet)sheets.get_Item("EmployeeSheet"); Excel.Range empRange = (Excel.Range)worksheet.get_range("B2"); string empVal = empRange.Value2.ToString(); 但是,通过这个过程来获得一个string的单个单元格的值,我不知道如何将它放入我的数组元素,更不用说一系列的值。 […]

excel列中的数组长度

我在Excel中有一个列有数组。 意思是,它们有一个逗号分隔值的列表,括在下面的大括号内 {a} {a,b} {a,b,c} {d,e,f} .. 有什么办法可以确定每个数组的长度使用简单的Excel计算,或者我需要一些代码。 被取消的输出将是.. {a} — 1 {a,b} — 2 {a,b,c} — 3 {d,e,f} — 3 ..

为什么不是这个函数返回一个包含数据的数组?

为什么这个函数在通过我的子程序后没有返回任何数据? 所需的三个数组是Returned_Array_CNR , Returned_Array_NR , Returned_Array_Rel As Variant 。 我是否正确使用Returned_Array = a_AR执行return语句? 我打算用这个函数返回三个单独的数组,我希望通过函数头中定义的Returned_Array参数来标记它们。 我在函数的参数中传递这个variables – 我是否正确地做了这个? Public Function a_AR(ByVal cA, cB, ByVal cC As Double, cName As String, Returned_Array As Variant, Optional cD As Double) As Variant() Lr = Range("A65000").End(xlUp).row ReDim aAR(1 To Lr, 1 To 4) ReDim Returned_Array(1 To Lr, 1 To 4) For […]

在Excel中检查重复的子string

我试图find一种方法来比较每个单元格中的第一个重要单词与下一个单元格中的第一个重要单词,如果第一个重要单词匹配,则删除第二个条目。 例如,起始数据可能如下所示: 通用电气 通用电气公司 通用电气公司 微软 微软公司 微软服务器 任天堂 任天堂企业 结果应该是这样的: 通用电气 微软 任天堂 到目前为止,我已经设置了遍历数​​据列的代码: Sub CompanyNameConsolidate() Dim companyName As String Dim companyArray() As String Dim companyName2 As String Dim companyArray2() As String Dim totalArray() As String Dim wordCount As Integer Dim i As Integer Dim r As Range With Sheets("Unassigned") Range("B1").Select Do Until IsEmpty(ActiveCell) […]

不能为循环分配数组错误

我想要这个代码过滤出一些不同的值,并将结果复制到一个新的电子表格中,将其保存为个人姓名(带有date),然后将其作为附件发送。 我有两个数组,一个包含名称,另一个包含电子邮件。 不过,我遇到了一些问题。 我得到一个错误'不能分配给数组':JCMails = Array(“x@rvant.co.uk”,“Y@rvant.co.uk”)。 Sub LOOKUP() Dim myFilename As String Dim JCNames(2) As String Dim JCMails(2) As String JCNames = Array("x", "Y") JCMails = Array("X@rvnt.co.uk", "Y@rvnt.co.uk") Dim i As Long Dim j As Integer j = 0 For i = 0 To UBound(JCNames) myFilename = JCNames(i) & Format(Now(), "ddmmyyyy") Range("G1").Select ActiveSheet.Range("A:N").AutoFilter Field:=7, Criteria1:=JCNames(i) […]

Excel如果满足条件,则在多列上查找并比较值

我有一个表代表客户的行,每个月,我在每行上添加一列代表他们作出的订单types(A,B或C)。 我需要确定每个订购A型(每个月)订单的客户,然后在接下来的几个月中,做出C型订单。 但是,如果从“A”到“C”types的订单(一个或多个月执行“C”)后,客户返回到“A”,我不需要识别他。 find“A”订单后,“B”订单无动于衷 给出的例子: Client M1 M2 M3 M4 Identify 01 ABCC Yes 02 ABCA No 03 ACBA No 04 BBAC Yes 05 BACB Yes 06 CABB No 07 AAAC Yes 08 AAAA No 09 ACAC Yes 10 ACCA No 等等。 我不知道我是否可以用一个简单的公式或使用VBA做到这一点。 编辑:由于每个月我添加一个新的列,公式或VBA应考虑所有可能性(如“ACCA”,“ACCCCA”等)。 还以客户端07,08,09和10为例。 先谢谢你。 JT

不能将数组的结果赋值给一个数组

我试图将数组的结果分配给一个数组。 它工作正常,如果我尝试将结果数组的一个元素分配给我的数组,但它试图将整个结果数组分配给我的数组(“无法分配给数组”)时返回错误。 Sub test() Dim lol(6) as Double lol = Hehe2() End Sub Function Hehe2() As Double() Dim Zliczacz(1 To 6) As Double Zliczacz(1) = 1 / 2 Zliczacz(2) = 1 / 2 Zliczacz(3) = 1 / 2 Zliczacz(4) = 1 / 2 Zliczacz(5) = 1 / 2 Zliczacz(6) = 1 / 2 Hehe2 = […]

在Access VBA中存储数组

我已经在Access VBA中编写了一个子例程,在这里显示以供参考: 在Access VBA中的strSQL中循环date 。 具体如下: Sub SampleReadCurve() Dim rs As Recordset Dim iRow As Long, iField As Long Dim strSQL As String Dim CurveID As Long Dim MarkRunID As Long Dim MaxOfMarkAsofDate As Date Dim userdate As String CurveID = 15 Dim I As Integer Dim x As Date userdate = InputBox("Please Enter the […]

错误(“下标超出范围”?)在ReDim保留

我在这里得到了一些很好的帮助,但是我似乎无法使用我所发现的所有知识来找出这段代码中的错误。 任何人? Sub build_StringLists() Dim rw As Long, v As Long, vTMP As Variant, vSTRs() As Variant Dim bReversedOrder As Boolean, dDeleteSourceRows As Boolean ReDim vSTRs(0) bReversedOrder = False dDeleteSourceRows = True With ActiveSheet For rw = .Cells(Rows.Count, "D").End(xlUp).Row To 1 Step -1 If IsEmpty(.Cells(rw, "D")) Then ReDim Preserve vSTRs(0 To UBound(vSTRs) – 1) If […]

从数组比较中排除零值

我有这个公式,它检查范围内是否有连续的数字: {= IF(SUM( – (ABS(C31:BI31转置(C31:BI31))= 1)), “是”, “否”)} 它完美的工作,但我想从比较过程中排除零值。 4 6 2 8 0 9 – 结果:“是” 0 1 7 5 9 2 – 结果:“是”,但应该是“否”,因为0和1不应该被视为连续的数字。