Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/xslt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA:将公式与if条件连接_Excel_Vba_Concatenation_Formula - Fatal编程技术网

Excel VBA:将公式与if条件连接

Excel VBA:将公式与if条件连接,excel,vba,concatenation,formula,Excel,Vba,Concatenation,Formula,我正在尝试使用下面的编码根据条件连接单元格。。它给了我一个语法错误。你能帮我更正这个代码吗?或者我需要使用不同的方法吗 请求: 代码: Sub-Conc() 将最后一行变暗为范围 作为字符串的Dim str 带工作表(“表1”) lastrow=.Cells(Rows.Count,“A”).End(xlUp).Row 范围(“F2”)。选择 范围(“F2:F”和LastRow)。公式=“=IF(B2=”aaa@to.com,连接(E2,“-”,中间(A2,FIND(“SECN”,A2),14)

我正在尝试使用下面的编码根据条件连接单元格。。它给了我一个语法错误。你能帮我更正这个代码吗?或者我需要使用不同的方法吗

请求:

代码:

Sub-Conc()
将最后一行变暗为范围
作为字符串的Dim str
带工作表(“表1”)
lastrow=.Cells(Rows.Count,“A”).End(xlUp).Row
范围(“F2”)。选择
范围(“F2:F”和LastRow)。公式=“=IF(B2=”aaa@to.com,连接(E2,“-”,中间(A2,FIND(“SECN”,A2),14)),如果(B2)aaa@to.com,连接(中间(A2,查找(“SECN”,A2),14),“-”,C2)))
以

End Sub

首先,您需要在公式字符串内的
上加倍

其次,您需要使用工作表(“sheet1”)语句完全限定嵌套在
中的所有
单元格
行。计数
范围
对象

第三,在设置
公式之前,无需
选择
范围

With Worksheets("sheet1")
    LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
    .Range("F2:F" & LastRow).Formula = "=IF(B2=""aaa@to.com"",CONCATENATE(E2,"" - "",MID(A2,FIND("" SECN"",A2),14)),IF(B2<>""aaa@to.com"",CONCATENATE(MID(A2,FIND(""SECN"",A2),14),"" - "",C2)))"
End With
与工作表(“表1”)
LastRow=.Cells(.Rows.Count,“A”).End(xlUp).Row
.Range(“F2:F”和LastRow).Formula=“=IF(B2=“”aaa@to.com连接(E2,“-”,中间(A2,查找(““SECN”,A2),14)),如果(B2)aaa@to.com连接(中间(A2,查找(““SECN”,A2),14),“-”,C2)))
以

首先,您需要在公式字符串中加倍

其次,您需要使用工作表(“sheet1”)
语句完全限定嵌套在
中的所有
单元格
行。计数
范围
对象

第三,在设置
公式之前,无需
选择
范围

With Worksheets("sheet1")
    LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
    .Range("F2:F" & LastRow).Formula = "=IF(B2=""aaa@to.com"",CONCATENATE(E2,"" - "",MID(A2,FIND("" SECN"",A2),14)),IF(B2<>""aaa@to.com"",CONCATENATE(MID(A2,FIND(""SECN"",A2),14),"" - "",C2)))"
End With
与工作表(“表1”)
LastRow=.Cells(.Rows.Count,“A”).End(xlUp).Row
.Range(“F2:F”和LastRow).Formula=“=IF(B2=“”aaa@to.com连接(E2,“-”,中间(A2,查找(““SECN”,A2),14)),如果(B2)aaa@to.com连接(中间(A2,查找(““SECN”,A2),14),“-”,C2)))
以

以下是..的更新代码。。问题在于最后一行的定义,感谢@Gary的学生和@Shai Rado对公式的宝贵建议

Sub Conc()

    Dim lastRow As Long

    With Worksheets("sheet1")
         lastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
        .Range("F2:F" & lastRow).Formula = "=IF(B2=""aaa@to.com"",CONCATENATE(E2,"" - "",MID(A2,FIND(""SECN"",A2),14)),IF(B2<>""aaa@to.com"",CONCATENATE(MID(A2,FIND(""SECN"",A2),14),"" - "",C2)))"
    End With
End Sub
Sub-Conc()
最后一排一样长
带工作表(“表1”)
lastRow=ActiveSheet.Range(“A”&Rows.Count).End(xlUp).Row
.Range(“F2:F”和lastRow).Formula=“=IF(B2=“”aaa@to.com连接(E2,“-”,中间(A2,查找(““SECN”,A2),14)),如果(B2)aaa@to.com连接(中间(A2,查找(““SECN”,A2),14),“-”,C2)))
以
端接头

以下是..的更新代码。。问题在于最后一行的定义,感谢@Gary的学生和@Shai Rado对公式的宝贵建议

Sub Conc()

    Dim lastRow As Long

    With Worksheets("sheet1")
         lastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row
        .Range("F2:F" & lastRow).Formula = "=IF(B2=""aaa@to.com"",CONCATENATE(E2,"" - "",MID(A2,FIND(""SECN"",A2),14)),IF(B2<>""aaa@to.com"",CONCATENATE(MID(A2,FIND(""SECN"",A2),14),"" - "",C2)))"
    End With
End Sub
Sub-Conc()
最后一排一样长
带工作表(“表1”)
lastRow=ActiveSheet.Range(“A”&Rows.Count).End(xlUp).Row
.Range(“F2:F”和lastRow).Formula=“=IF(B2=“”aaa@to.com连接(E2,“-”,中间(A2,查找(““SECN”,A2),14)),如果(B2)aaa@to.com连接(中间(A2,查找(““SECN”,A2),14),“-”,C2)))
以
端接头

在公式中,必须在双引号上加倍。@Gary的学生-表示对象变量或未设置块变量:(在公式中,必须在双引号上加倍)@Gary的学生-表示对象变量或未设置块变量:(对象变量或未设置块变量错误:(@Kelvin在哪一行?宏不起作用。它直接抛出错误。@Kelvin u r没有真正帮助我帮助你。在调试模式下运行,看看代码停止符是哪一行。它与公式行。范围(“F2:F”&lastrow)。公式=“=IF(B2=“”aaa@to.com连接(E2,“-”,中间(A2,查找(““SECN”,A2),14)),如果(B2)aaa@to.com“”,连接(MID(A2,FIND(““SECN”,A2),14),“-”,C2)))对象变量或带块变量未设置错误:(@Kelvin在哪一行?宏不起作用。它直接抛出该错误。@Kelvin u r并没有真正帮助我。在调试模式下运行,看看代码停止符是哪一行。它与公式行。范围(“F2:F”&lastrow)。公式=“=IF(B2=”"aaa@to.com连接(E2,“-”,中间(A2,查找(““SECN”,A2),14)),如果(B2)aaa@to.com连接(中间(A2,查找(““SECN”,A2),14),“-”,C2)))