Tag: if statement

VBA脚本来拉取特定的HTML类中的值

我创build了一个VBA脚本,通过获取HTML类中的值来从网站上获取价格。 请参阅VBA脚本从网站拉数据更多的上下文。 这工作得很好,但有些情况下只有1个价格(没有RRP和销售价格),因此我需要以某种方式包含if语句来查找类名称,如果不存在则查找另一个类名称。 例如,我有以下电子表格: | A | B | C | | | Item | Price | | | bfd/garden-structures/arbours/arbours-sunflower | | | | bfd/garden-structures/arbours/tatton-corner-arbour-seat | | | | bsd/garden-storage/wooden-storage/4-x-2-windsor-garden-storage-chest | | 在这个例子中,前两个代码使用下面的代码:(查找int类VariantPrice & NowValue ),但是第三个例子不工作,因为类VariantPrice & NowValue不存在,但它有类price & SinglePrice 。 我使用的代码如下: Sub BuyDeckingDirect() Dim ie As New InternetExplorer Dim doc As HTMLDocument Dim result […]

在另一个子例程中引用一个语句

我有代码,我分解成多个运行顺序。 我从一个消息框开始,询问“您是否input八月份的数据” 。 如果答案是肯定的,它会运行一系列的代码,但是现在我的代码太长了,我无法在八月份继续这一系列的代码。 我试图使代码无缝的变化。 当新的代码开始时,我可以再次问“你input数据的月份是什么”,但如果可能的话,我不想。 理想情况下,我希望我的新代码的第一行是“如果您对代码1中的最初问题回答”是“,则继续”。 这里是我所说的所有代码: Sub PreScrub() Call Tabs Call AUGSUMMCEND Call AugNUR End Sub 第一个代码只是格式化,所以我会跳过这个。 这是我第二个代码的开始,我在那里提示本月: Augbox = MsgBox("Are you entering Prescrub for August?", vbYesNo + vbQuestion) If Augbox = vbYes Then For i = 1 To recvarSumm.Rows.Count For j = 1 To recvarSumm.Rows.Count If recvarSumm.Cells(i, j).Value = "Aetna" Then recvarSummvalues.Cells(i, […]

无处不在:应用程序定义的错误或对象定义的错误

我写了一个小的macros,将事务input到我们的ERP系统中,当确定电子表格中定义的第二个位置是否大于零时,事情似乎会被抹黑。 这是我的代码: Option Explicit Sub DblChk() If (MsgBox("Are you sure you are ready to append scrap data to QAD? This cannot be reversed.", vbOKCancel)) = 1 Then Call Scrap Else: Exit Sub End If End Sub Sub Scrap() On Error GoTo ErrorHelper Sheets("Roundup").Select Range("I2").Select Call Shell("C:\Program Files\QAD\QAD Enterprise Applications 2.9.6\QAD.Applications.exe", vbNormalFocus) 'Sign in to QAD […]

Excel VBA中的IF语句中的多个条件

可能是一个容易的,但我的编程技能是有限的。 我已经创build了一个帐户input工具,并且想要警告用户,如果他们已经为两种types的支出typesinput了信用额度; “限制性支出”和“不受限制的支出”。 通常这种types的值应该是借方。 我可以在声明中将其用于一种types,但是如果我在“或”声明中添加其他支出types,则不能。 任何帮助表示赞赏 – 有一个“或如果…”types的function,我可以使用? 我的代码是 If inputWks.Range("d9") > 0 And inputWks.Range("d11") = "Restricted_Expenditure" Or "Unrestricted_Expenditure" Then Dim Response As Integer Response = MsgBox(prompt:="You've entered a credit amount against an expenditure type. If this is correct then press 'Yes' or else press 'No' to change", Buttons:=vbYesNo) If Response = vbYes Then GoTo […]

MACRO VBA – “运行时错误”1004“应用程序定义的或对象定义的错误”

嗨,任何人都可以找出为什么我得到这个消息.. 运行时错误“1004”应用程序定义或对象定义的错误 这是我的代码,问题行似乎是: range("A1").Select 这里是其余的代码: Sub HorizontalLoop() Dim lCol As Long Sheets("output").Select For lCol = 1 To 100 Dim inputrange As String If Not IsEmpty(Cells(lCol).Value) Then inputrange = Cells(1, lCol).Value ActiveCell.EntireColumn.Select Selection.Copy Sheets("input").Select range("A1").Select ActiveSheet.Paste Sheets("output").Select End If Next lCol End Sub 先谢谢你 :)

如果语句结果相互覆盖VBA

我正在经历我的循环输出的问题。 随着子运行,我可以看到最后的IF语句的结果被第二个结果覆盖。 我的代码结构如下: for i = 1 to 5 for j = 1 to 50 for each events.value in eventArray if events.value = arrayElem then if cells(i,j).value = "x" then type = "col1" elseif cells(i,j).value = "y" then date = "col2" elseif cells(i,j).value = "z" then num = "col3" end if count = count + […]

如何在Java中编写IF-ELSE语句?

我们正在尝试将计算字段作为出货dateif-then-else语句写入带有eclipse的java(Talend DI TOOL) 环境:我们正在努力创造工作。 source systems (sql server and excel file)—->tmap—->Target system(Excel file) inputexpression式:if-then-else公式 发货date if ([Customer])='0000001' or (TRIM([Corp Acct Name]))='GENERAL' or (TRIM([Corp Acct Name]))='ABC' or (TRIM([Corp Acct Name]))='XYZ' or (TRIM([Corp Acct Name]))='CDE' then ([ShipDate]) elseif DATEPART('weekday',([MABD])) =1 and [Total Lead Time]<=5 then (([MABD])-[Total Lead Time]-2) elseif DATEPART('weekday',([MABD])) =1 and [Total Lead Time]>5 then (([MABD])-[Total […]

IF中的函数太长。 如何简化?

我已经在Excel 2003工作表的单元格中编写了一个长的If函数。 我想补充一点,但是,Excel告诉我,我的function太长了。 有人知道如何简化或减less函数的长度? 在Column K3 ,我有一个缺陷types的下拉列表,然后这个中间函数在列L3中出现一个特定的缺陷描述,这个缺陷描述是根据column K3select的缺陷types。 =IF(ISTEXT(K3)=TRUE,IF(OR(K3="Abnormal Finishing",K3="Bending Mark",K3="Bent",K3="Contamination",K3="Crack",K3="Damage",K3="Dented",K3="Discoloration",K3="Finger Print",K3="Flow Mark",K3="Gap",K3="Insufficient Paint",K3="Scratches",K3="Rusty",K3="Stain Mark",K3="Standoff Mark",K3="Tool Mark",K3="Warpage",K3="Water Mark",K3="White Mark",K3="White Spot"),"Cosmetic",IF(OR(K3="Angle Out",K3="Dimension Out",K3="Fitting Problem"),"Dimension",IF(OR(K3="Assembly Misalignment",K3="Fan Broken",K3="Fan Not Functioning",K3="Assembly Wrong Orientation",K3="Missing Component",K3="Missing Rivet (Assembly)",K3="Part Warping (Assembly)",K3="Rivet Loose (Drop) (Assembly)",K3="Rivet Wrong Location (Assembly)",K3="Rivet Wrong Orientation (Assembly)",K3="Screw Loose (Drop)",K3="Screw Stuck"),"Assembly","ERROR"))),"ERROR")

创build一个多条件,多行'IF和MIN'的条件公式

我有一个电子表格,其中包含来自排水程序(pipe道和坑)的值,我想创build一个公式,find坑名称,然后find连接到该坑的pipe道下游端的最小值。 我可以用数组来处理 – {=MIN(IF('ArcGIS Pipes'!$C$2:$C$100=A3,'ArcGIS Pipes'!$F$2:$F$100))} 。 但是,有时坑只连接到上游端,这意味着它在U/S IL (m)下处于不同的列中。 如果是这种情况,那么我想要的价值,但目前,我不得不先运行D/S IL (m)列公式,如果没有返回任何,那么我必须手动更改为null {=MIN(IF('ArcGIS Pipes'!$B$2:$B$100=A2,'ArcGIS Pipes'!$E$2:$E$100))}检查U/S IL (m)列。 一旦我这样做了,任何剩余的null值是坑没有连接到任何pipe道,他们被手动赋予一个空值。 所以,我想要做的就是有一个方法可以完成上述所有的工作,而不需要我去做,也不必做任何事情。 简而言之,我想要公式首先检查一个列中最小的下游值,如果没有返回任何值,那么我希望它检查另一列中的最小上游值,最后如果没有返回任何值,那么我想返回一个空值。 我已经摆弄嵌套的IF和子数组,但只是得到一个错误或返回一个FALSE 。 我试过的公式给了我FALSE =IF((MIN(IF('ArcGIS Pipes'!$C$2:$C$100=A2,'ArcGIS Pipes'!$F$2:$F$100))),IF(MIN(IF('ArcGIS Pipes'!$B$2:$B$100=A2,'ArcGIS Pipes'!$E$2:$E$100)),null)) 。 我知道我错过了一些东西,但我已经开始绕圈了! Screengrab – 左表是源表,右表是结果表

嵌套如果语句没有select适当的单元格值

我有一个窗体上的3个combobox。 第一个是填充表单加载时,第二个填充时,用户从第一个combobox中select一个值,第三个填充时,用户从第二个select一个值。 当第三个combobox被改变时,我使用一个嵌套的If语句来确定这个组合所在的行(所以我可以在窗体上填充文本框)。 但是,第一个If语句无法触发(即返回“真”值)。 单元格中有一个可接受的值,所以它应该继续到下一个If语句,但是它只是跳到我的While语句的末尾。 Private Sub cmb_State_Change() Dim Project, licence, state As String Dim selectedrow As Integer Dim LastRow As Integer Dim i, j As Integer selededrow = 0 Project = cmb_Project.Value licence = cmb_Licence.Value state = cmb_State.Value i = 1 j = 3 While selectedrow = 0 If Worksheets("Entitlements").Cells(i, j) = Project Then […]