Tag: if statement

Excel IF AND语句返回false时为true

我有一个公式,应该检查两个陈述是否属实:名称显示对应于某个date。 如果为true,则返回YES,否则返回NO。 由于某种原因,公式在某些情况下提供了正确的答案,而在其他情况下提供了错误的答案,我无法弄清楚我错在哪里。 声明如下: =IF(AND(Transfers!$A$2:$A$500=$B$2,Transfers!$B$2:$B$500=A3),"Yes","No") Transfers只是它正在search条件的选项卡的名称。 出于某种原因,某些人提供了YES ,而其他人提供了YES 。 任何人有什么想法我做错了?

如何在Excel VBA中使用OR和空单元格创buildIF语句

我正在尝试在VBA脚本中创buildIF语句。 最终想要实现的是将内容从一张表(“数据库”)复制到另一张表(“search”),只要符合IF语句。 脚本首先定义variables(“国家”,“类别”),依赖于用户在“search”工作表的单元格“E5”和“E7”上的input。 它还定义了要在该行之前运行的If语句的最后一行: country = Sheets("Search").Range("E5").Value category = Sheets("Search").Range("E7").Value finalrow = Sheets("Database").Range("A200000").End(xlUp).Row 在此之后,脚本build立条件:如果input的值(在“国家”和“类别”中的单元格)与“数据库”表格的单元格上的内容相匹配,则应将该表格上的值复制到“search“表单: For i = 2 To finalrow If Sheets("Database").Cells(i, 1) = country And _ Sheets("Database").Cells(i, 3) = category Then With Sheets("Database") .Range(.Cells(i, 1), .Cells(i, 9)).Copy End With Sheets("Search").Range("B600").End(xlUp).Offset(1, 0).PasteSpecial xlPasteFormulasAndNumberFormats End If Next I 我想用一个OR语句为IF语句添加一个附加条件。 我想这样做,如果用户不填写“类别”单元格,值仍然从一个表复制到另一个。 在代码方面,我添加了**之间的部分,但它不工作: For i = 2 To […]

BeforeClose Before不会closures我的Excel表单VBA

所以我一直在试图把一个小的Excel工作表,它有一个条目login。 所以每当表格被closures,名称,date和时间被添加。 所以基本上我有三个macros运行,我只会提两个。 主macros会问我是否要closures表单,我将不得不回答是或否。 这工作正常。 如果我按是主macros将调用一个子macros,这将要求我input一个string。 如果这个Inputbox是空的或者入口被取消了,我想让main子停止运行并取消Close进程。 这似乎不工作。 在代码中的错误似乎很清楚,但我不知道如何防止它,并find一个更好的解决scheme。 如果你能帮我想出一个解决scheme,我会非常感激。 这行代码似乎是问题: If Cancel_Button_LOG = False Then Cancel = True 在这里,我将添加两个macros的压缩版本 Public Sub Add_Entry_to_Log() Dim i As Integer Dim response As Variant Cancel_Button_LOG = True response = InputBox("Please enter your Name", "Name") If response <> "" Then Else Cancel_Button_LOG = False MsgBox "Please enter your name", […]

如何比较两个地图

我在工作簿中有几张地图,想知道是否有办法比较两个地图中相同位置的特定字符。 例如,我在表1中有这样一张地图: ABCDEFGHIJ 1: @ @ @ @ @ @ Z @ @ @ 2: @ @ Z @ @ @ @ @ @ @ 3: @ @ @ @ @ @ Z @ Z @ 4: @ @ @ @ Z @ @ @ @ @ 5: @ Z @ @ @ @ @ […]

在true子句中使用If-Then语句的结果

我试图用一个方程中后来返回的值,但是如果不是不可能的话,我觉得这很困难。 这是我的公式看起来像: =IF(SUMPRODUCT(–ISNUMBER(SEARCH({"Application","Account","Machine"}, H5))), INDEX(Sheet1!N$2:N$7, MATCH(<term that made the SEARCH function true,Sheet1!M$2:M$7,0)), "") 我试图search单元格中的一系列单词,如果find这些单词中的一个,请在INDEX-MATCHsearch中使用该单词。 有没有办法做到这一点,还是我需要把我的工作分成两步?

Excel如果使用OR的公式,避免#N / A

目前面临一个问题,长话短说:我试图通过使用OR函数将2个公式合并成一个公式,但是如果两个条件之一不存在,它会给我一个#N / A返回。 有三种情况可能发生:“MTI”,“MTI Z”和“MTO”。 我想要的是,该公式search任何组合在“MTI”或“MTI Z”(也可能是两个),并且如果组合存在,则返回1.如果不是(所以只有MTO存在)然后返回一个0(在这种情况下,它将是一个#N / A,但我可以解决与ISNA或IFERROR)。 公式1是: =IF(CONCATENATE(A2,B2,"MTI")=INDEX(L:L,MATCH(CONCATENATE(A2,B2,"MTI"),L:L,0),0),1,0) 公式2是 =IF(CONCATENATE(A2,B2,"MTI Z")=INDEX(L:L,MATCH(CONCATENATE(A2,B2,"MTI Z"),L:L,0),0),1,0) 两个公式都起作用,当分别有一个“MTI”或“MTI Z”时,返回“1” 然而,当我试图合并它们时,如果列表中不存在2个中的1个,那么即使我使用OR(它将声明是否存在2个中的至less1个,前进)。 =IF(OR(CONCATENATE(A2,B2,"MTI Z")=INDEX(L:L,MATCH(CONCATENATE(A2,B2,"MTI Z"),L:L,0),0) ,CONCATENATE(A2,B2,"MTI")=INDEX(L:L,MATCH(CONCATENATE(A2,B2,"MTI"),L:L,0),0)),1,0) 我怎样才能调整我的公式,使其工作?

在附件数量变化的情况下添加多个附件

我发送电子邮件给大约150个人,每封电子邮件可能有1到3个附件。 我可以发送电子邮件只需一个附件…得到多个附件是困难的。 假设附件文件path位于A1到C1之间。 我如何执行。 如果A1为空,则转到发送,如果没有,则附加文件如果B1为空,则转到发送,否则附加文件如果C1为空,则转到发送,否则,附加文件 发送: 这是我目前的代码:我意识到我的范围是不同于我上面发布的。 下面的脚本可以工作,但它只是一个附件。 Set rngEntries = ActiveSheet.Range("b5:b172") For Each rngEntry In rngEntries Set objMail = objOutlook.CreateItem(0) With objMail .To = rngEntry.Offset(0, 11).Value .Subject = rngEntry.Offset(0, 8).Value .Body = rngEntry.Offset(0, 10).Value .Attachments.Add rngEntry.Offset(0, 9).Value .send End With Next rngEntry 我想看起来有点像这样…. Set rngEntries = ActiveSheet.Range("b5:b172") For Each rngEntry In rngEntries Set objMail […]

为什么多个连续的不平等的条件不适用于VBA?

我想知道为什么下面的语法不能像我认为的那样在VBA中工作,我应该怎么做才能确保它的工作; For a = 1 To 10 For b = 1 To 10 For c = 1 To 10 If a <> b <> c Then MsgBox (a & " " & b & " " & c) End If Next c Next b Next a 这是一个简化的例子,仍然可以通过以下方式手动获取: if a<>b and b<>c and c<>a then 但是我的实际代码多次有10个这样的variables,这使得55个不相等的条件不可行,或者我可能会犯一个错字。 […]

如果和直到循环EXCEL VBA

新的VBA,如果有人可以帮助我在这里做错了什么。 试图运行一个循环,以便查找特定的文本,启动循环,然后在特定点停止。 循环是这样的,我希望它在我的表中复制下面的一些值,因此a是55.我面临的错误块如果没有结束如果 这里是代码: Private Sub CommandButton3_Click() For y = 1 To 15 Step 5 Dim x As Double Dim a As Double x = 1 a = 55 If Cells(x, y).Value = "Text1" Then Do Until Cells(x, y).Value = "Text2" Cells(a, y) = Cells(x, y).Value Cells(a, y + 1) = Cells(x, y + 1) […]

如何在同一行的不同列中对具有相同文本值的列进行求和

我有一个名字和一列数字列: FirstName Name Number John Smith 17 John Smith 26 Peter Smith 116 Peter Smith 25 Franck Black 17 Luke Peterson 17 Luke Peterson 37 名字和Name相同的Name代表同一个人。 我需要总结与他们相关的数字。 我不喜欢使用VBA。