Tag: 函数

将vlookupembedded到excel函数中

我正试图关联从一个巨大的数据库中提取的数据。 我无法控制数据库,所以重命名字段不是一个选项。 我不得不将数据从不同的数据库表中分离出来。 我想在Excel中写一个函数来返回基于单个标准的特定的查找值。 “itemnum”值在列A中,“binnum”值在列K中。我需要能够为具有“itemnum”的19,000个唯一值的工作表使用该函数。 问题是,我不知道在VBA中使用vlookup的语法。 这是我正在尝试做的一个例子: Function orders(itemnum, binnum) If binnum = "ibp" Then orders = IF(ISNA(VLOOKUP(AllLocations!A2,OpenIBP!A:B,1,FALSE)), 0, VLOOKUP(AllLocations!A2,OpenIBP!A:B,2,FALSE)) Else orders = =IF(ISNA(VLOOKUP(AllLocations!A2,OpenIST!A:B,1,FALSE)), 0, VLOOKUP(AllLocations!A2,OpenIST!A:B,2,FALSE)) End If End Function 任何人都可以帮我重写这个,所以它的作品? 我在我头上。 谢谢。

如何在excel vba中获得一个子程序来返回一些东西?

我在Excel VBA中有以下代码: Sub main() Call Get_Rows_Generic("usersFullOutput.csv", 1) End Sub 在另一个模块中我有: Sub Get_Rows_Generic(work_sheet As String, column_num As Integer) Dim wsUsers As Worksheet: Set wsUsers = Worksheets(work_sheet) Dim userRows As Integer: userRows = wsUsers.Cells(Rows.Count, column_num).End(xlUp).Row MsgBox userRows End Sub 我如何访问子Get_Rows_Generic的子Get_Rows_Generic ( MsgBox显示的)的结果? 即将结果input另一个子或单元格等等。

Excel VBA自定义函数从另一个string中删除出现在一个string中的单词

我试图从一个不同的string中使用自定义函数中出现在一个string中的单词。 例如: A1: 那是为什么蓝色的帽子 A2: 陌生人想知道为什么他的蓝帽子变成了橙色 这个例子中的理想结果是: A3: 陌生人想知道他的橙色 我需要打开引用中的单元格以便可以在不同情况下使用它们。 该函数将在一个单元格中使用,如下所示: = WORDREMOVE( “需要删除单词的单元格”,“要删除单词列表的单元格” ) 我有一个20000行的列表,并设法find一个自定义函数,可以删除重复的单词(下面),并认为可能有一种方法来操纵它来完成这项任务。 Function REMOVEDUPEWORDS(txt As String, Optional delim As String = " ") As String Dim x 'Updateby20140924 With CreateObject("Scripting.Dictionary") .CompareMode = vbTextCompare For Each x In Split(txt, delim) If Trim(x) <> "" And Not .exists(Trim(x)) Then .Add Trim(x), Nothing Next […]

在COUNTIFS函数中出错

我想根据给定的出发时间(假设从00:00到05:00)计算在特定的一天中有多less车辆延迟了4分钟以上。 这是数据的一个样本: ABCD 1 Line Day Departure Delayed (sec) 2 11 Weekday 02:30:00 120 3 11 Weekday 03:40:00 500 4 22 Weekday 01:45:00 10 5 44 Weekday 06:44:00 1000 6 55 Weekday 04:35:00 145 7 111 Saturday 14:40:00 450 8 111 Saturday 04:20:00 300 9 111 Saturday 20:20:00 220 10 111 Saturday 07:00:00 125 11 […]

Excel VBA将单元格数组传入函数

我正在尝试编写一个简单的VBA函数,如下所示: Public Function ReturnMMult(Arr1() As Variant, Arr2() As Variant) As Variant ReturnMMult = WorksheetFunction.MMult(Arr1,Arr2) End Function 但它总是给我#VALUE! 我已经尝试将Arr的更改为Ranges,但这也不起作用。 我基本上希望能够编写的function,可以采取像$ A1:$ A10或类似的东西。 看了很多地方,搞不清楚。 我究竟做错了什么?

Excel最小函数返回0

我已经检查了Excel文档…我总是得到0 这是我的Excel表 这是我的代码: =MIN(IF(C7="X";C20);IF(D7="X";D20)) 如果在单元格C7和D7中有一个“X”,我希望得到单元格C20或D20的SMALLEST(MIN)值,它工作正常,但是 – >当我删除一个“X”时,让单元格D7 ,我只返回0,因为Min函数总是返回0,如果我的IF函数不是一个数字/数字,但是当我删除我的X时,我总是从我的IF()函数中得到假… 所以我的问题是,我怎么能忽略所有如果返回值不是一个数字意味着,当我的IF()函数返回false < – 我怎么可以忽略这个值,我的MIN()函数会给我一个系统resulst回来 – 而不是0 ??? 谢谢你的帮助!

VBA存储全球使用的代码

我一直在创build几个函数,所有这些函数都有很多相同的代码。 有问题的代码是从Dim Order_Type As Range down到Set PMethod10 = Sheets("KRONOS").Range("$BK:$BK") 。 我怎样才能把它放在一个全局函数或类似的东西,只能调用该函数,而不是每次都使用整个代码? Public Function BANKING1(rev_date As Date) As Variant Dim Order_Type As Range Dim Final_Price As Range Dim PaidAlt As Range Dim Excl_Rev As Range Dim PAmount1 As Range Dim PMethod1 As Range Dim PAmount2 As Range Dim PayDate2 As Range Dim PMethod2 As Range Dim […]

匹配function? VBA不能正常工作

我有一个下面的代码,我有单元格B11,B19和B25“名称”,我期待的结果19或25的代码,但它返回Y = 1。 谁能告诉我有什么问题? Sub mat() Y = Application.Match("name", ActiveSheet.Range("B19:B30"), 0) MsgBox Y End Sub

将Excel文本与Max函数结合使用

假设A2="A1" , A3="A10" 。 如果我想使用最大公式中的连接函数来查找范围A1:A10之间的最大值,我会写=MAX(CONCATENATE(A2):CONCATENATE(A3))但是失败。 有没有办法在max函数中inputstring? 这对于手头的任务是有用的。

在Excel中设置范围时,VBA失败

使用来自MSDN的示例,我试图在Excel 2007中设置一个单元格的值。下面是我采取的步骤: 在Excel选项中,select“ Enable all Macro's和“ Trust access to VBA object model 。 创build一个新的Excel工作簿。 添加一个新的VBA模块。 插入以下function: Function MyTest(rg As Range) rg.Value = 1 MyTest = 1234 End Function 将公式=MyTest(B1)到A1的单元格中。 当MyTest的第一行被执行时,debugging器简单的失败。 没有任何错误,它会停止debugging并显示#VALUE! 在A1。 B1保持空着。 我试过设置.Formula而不是.Value 。 我试过使用ActiveSheet和Worksheets["Sheet1"]来访问Worksheets。 什么可能是这个错误的原因?