Tag: if statement

VBA – 打开word文档,将数据从excel导出到Word文档

我有一点我无法解决的问题。 我已经编程VBA代码导出单元格数据从Excel文本文本框。 它是如何工作的:我在excel文档中有一个button,突出显示想要使用的那一行,按下button,而不是从我告诉它的所有单元格中抓取数据,并将它们导入到单词中。 我遇到的问题是,如果我select另一行并再次按下button,它会尝试再次打开相同的单词文档,因为它已经打开错误。 有反正我可以做,如果语句来检查,如果它打开,如果它不打开它,如果它是使用活跃词文档? 这是我目前的代码 Set objWord = CreateObject("Word.Application") objWord.Visible = True objWord.Documents.Open "C:\Users\swhiston\Desktop\IT Services Invoice.docx" 感谢GreatSc0tt

Excel或如果不工作

在Excel中,如果列V中的单元格不等于F或V,我简单地试图删除一行。此代码删除所有内容。 它必须是愚蠢的,但我看不到它。 请帮忙! For i = RowCount To 1 Step -1 If Range("V" & i).Value <> "F" Or Range("V" & i).Value <> "V" Then Rows(i).Delete Next i

如何将IF语句放在Excel VBA的下一个可用列中?

我试图在第2行中的下一个可用列(dynamic)中放置一个IF语句。一旦IF语句在该单元格中,我想要添加来自同一列的最后一个使用行(dynamic)的值。 我在编写IF语句到VBA时遇到了麻烦。 我也需要编码的帮助,所以它在列的最后一行添加到IF语句的单元格中。 这是我的代码到目前为止: Sub vlookupF5() Dim SourceLastRow As Long Dim OutputLastRow As Long Dim sourceSheet As Worksheet Dim outputSheet As Worksheet Dim NextColumn As Long Dim ColumnStr As String Dim ColumnStr2 As String Dim ColumnStr3 As String Set sourceSheet = Worksheets("Actuals") Set outputSheet = Worksheets("Pivot") With sourceSheet SourceLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row End With With […]

比较date以填充适当的颜色

在Excel中使用VBA我有一个代码,将input的date与当前的date进行比较,并根据结果系统将以正确的颜色填充单元格。 代码在四种情况下比较。 如果input的date减去当前是: = 0 小于0 在1和4之间 在4和10之间 使用IF语句,但系统给我一个错误,错误在哪里以及如何解决? 码: Private Sub CommandButton1_Click() Dim i As Integer For i = Range("C5000").End(xlUp).Row To 2 Step -1 'Range upto 5000, chnge this as per your requirment' If IsEmpty(Cells(i, 3)) Then Exit Sub ElseIf (VBA.CDate(Cells(i, 3)) – VBA.Date()) < 0 Then Cells(i, 3).Interior.Color = vbGreen ElseIf (VBA.CDate(Cells(i, 3)) […]

将if语句的值logging到当前的Cell Excel中

我已经创build和超越spreed表。 它从一个网站的外部数据拉入表1.在工作表2是我所有的计算完成。 在Sheet 2 .. B1是我的当前值每小时更新, M1是我的当前时间, F1是我的当前时间, A4:A27是我的date范围, B3:Y3是我的时间范围,而且我正在使用if声明。 =if(AND(F1=A4:A27), (M1=(B3:y3),B1,"")如果语句正常工作。 您可以在20 – 2017年看到今天的date下有7的价值。 当时间变为8时,7值消失。 如下图所示。 由于if语句对于7的值不再是真的。 我正在寻找存储传递值的历史。 我怎样才能让if语句将值保存为一个值,而不是一个不断变化的引用。

连接公式(获取#REF错误)

下午所有:) 这是有点难以解释,但不幸的是,高兴地澄清在哪里需要它。 感谢您花时间阅读这篇文章^^这里去.. 我目前正在创build一个从数据库中提取的电子表格,我的任务是连接来自两个相邻单元格的数据。 我经常改变数据库,在需要的地方添加或删除数据,所以数据的范围总是不同的。 连接两个单元我使用下面的公式: 例如:= IF(ISBLANK(B8&H8),“”,B8&H8) 当我处理数量不断增加的数据时,这个公式可以很好地处理,因为我可以简单地将公式拖到我想要的位置,而且我知道每当刷新数据库时都会select公式,而不需要看到值错误。公式最后提到一个空白单元格。 这里的障碍(以及我的查询)是,如果我有更less的数据,然后在最后一组单元格中的公式看起来像这样: 例如:= IF(ISBLANK(#REF!&#REF!),“”,#REF!&#REF!) 我已经在其他电子表格中处理了#REF,因此我只是在声明中使用了一个ISERROR,但是我不知道是否有一种可能的方法将其包含在我的公式中。 我需要ISBLANK,所以我有更多的控制,不必经常拖动公式。 如果有更好的方法来解决这个问题或者修改当前公式的方法

在for循环中使用if语句 – Excel VBA

我在excel vba中使用for循环中的if语句时遇到了麻烦。 debugging器的输出不是我所期望的。 我可以发布我想要完成的完整代码,但是我想我已经把它缩小到了我不了解的地步。 这是我的代码: Private Sub Worksheet_Change(ByVal Target As Range) Dim i As Integer For i = 9 To 60 Step 3 If Cells(i, "DR").Value < Cells(i, "EB").Value Then Debug.Print i & "-ifloopstart" Cells(i, "DR").Value = 999999 Debug.Print i & "-ifloopend" End If Next i End Sub debugging器的输出是: 9-ifloopstart 33-ifloopstart 51-ifloopstart 51-ifloopend 33-ifloopend 9-ifloopend […]

如何合并这些陈述

我想结合这些if语句。 我目前有=IF(J2<=K2,"Y","N") 但首先: 如果J2 = I2,我希望这个IF语句返回“N”。 如果J2不是I2 = I2,那么我会先看看公式IF(J2<=K2,"Y","N")然后返回“Y”或“N” 因此testing的逻辑是: J2 == I2→ "N" J2 <> I2→ IF(J2<=K2,"Y","N")

对于VBA循环。 macros观Excel程序

我有使用VBA的项目的问题。 我有这个列有成千上万的行。 这些列的值有0.05, 1.3等。它也有复杂的值大于符号<像<0.05, <0.02这是我真正的问题。 我想使用If Else或Looping来解决这个问题。 但我不知道如何。 我是VBAmacros观excel的初学者。 我想从这些行发生的是,如果macros检测到一个值<它会自动被2分,所以我不会有复杂的值,以获得这些行的最大值和最小值。 编辑1:上传的图像 我希望你明白这个问题。 对不起我的英语不好。 谢谢你的帮助。

卸载语句不会卸载UserForm

我相信这有一个简单的答案,但它让我难住。 以下代码是我在VBA中创build的用户表单的一部分。 表单询问用户在一个字段中的项目名称,以及该项目在另一个字段中的数量。 这个代码是用户在input信息后点击“okay”后运行的一部分。 下面的If-Else Statement显示检查项目(ItemName)是否出现在名为Inventory的工作表上。 如果没有出现,那么用户应该看到一条错误消息,代码应该停止运行。 但是,我的代码不停止运行。 在If-Else声明之后,似乎忽略了“卸载我”这一行并继续执行代码。 我在这里做错了什么? Private Sub cmdOkay_Click() Dim Quantity As Double Dim ItemName as String Dim FoundRange As Range ItemName = Item_Name_Field Quantity = Quantity_Field Sheets("Inventory").Select Range("A1").Select Set FoundRange = Cells.Find(What:=ItemName, After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False) If FoundRange Is Nothing Then Dim AlertBox As Double AlertBox = […]