通过宏添加excel IF语句。编译时出错

通过宏添加excel IF语句。编译时出错,excel,vba,Excel,Vba,我的代码与UserForm一起工作,在UserForm中,所有信息都将在保存到表中之前写入。我想用IF语句添加两个公式,但我一直得到一个编译错误 我不知道为什么它会检查代码。。。不应该。它应该只粘贴到用户表单中文本的右侧列 有人能告诉我我做错了什么吗 我尝试了.Formula和.Value但没有任何效果 一直以来都是“编译时出错” Private子存储数据() '将输入值复制到工作表。 暗淡的光线和长的一样 将ws设置为工作表 设置ws=Tabelle1 作为整数的Dim i lrow=ws.C

我的代码与UserForm一起工作,在UserForm中,所有信息都将在保存到表中之前写入。我想用IF语句添加两个公式,但我一直得到一个编译错误

我不知道为什么它会检查代码。。。不应该。它应该只粘贴到用户表单中文本的右侧列

有人能告诉我我做错了什么吗

我尝试了
.Formula
.Value
但没有任何效果

一直以来都是“编译时出错”

Private子存储数据()
'将输入值复制到工作表。
暗淡的光线和长的一样
将ws设置为工作表
设置ws=Tabelle1
作为整数的Dim i
lrow=ws.Cells(Rows.Count,1)。End(xlUp)。Offset(1,0)。row
对于i=1至lrow
如果ws.Cells(i,1).Value=Me.E1GCharge.Value,则
MsgBox“费用由schon vorhanden承担,由Bite einfach Bestand承担
aktualisieren“
出口接头
如果结束
接下来我
与ws
.Cells(lrow,1).Value=Me.E1GCharge.Value
.Cells(lrow,3).Value=Me.E1GMatName.Value
.Cells(lrow,4).Value=Me.E1Gtype.Value
.Cells(lrow,5).Value=Me.E1GMatNumber.Value
.Cells(lrow,6).Value=Me.E1GExpiryDate.Value
.Cells(lrow,6).NumberFormat=“mmm.yyy”
.Cells(lrow,7).Value=Me.E1GBoxPcs.Value
.Cells(lrow,8).Value=Me.E1GAmmount.Value
.Cells(lrow,9).Value=Me.E1GUnit.Value
.Cells(lrow,10).Value=Me.E1Gkonz.Value
“IF语句编译错误”=IF([@[Rest Tubes]]”不适用
.Cells(lrow,11).FormulaLocal=“=IF([@[剩余管]]“N/A”,[@Pieces]-[@[Auslagerung总计]]/[@[管数量]],[@Pieces]-[@[Auslagerung pcs]])”
“IF语句编译错误”=IF([@[Rest Tubes]]=“不适用”
.Cells(lrow,12).FormulaLocal=“=如果([@[Amount数量]]=“不适用”;“不适用”;[@件]*[@[Amount数量]]-[@[Auslagerung总计])”
以
'清除输入控件。
Me.E1GMatName.Value=“”
Me.E1Gtype.Value=“”
Me.E1GMatNumber.Value=“”
Me.E1GExpiryDate.Value=“”
Me.E1GBoxPcs.Value=“”
Me.E1GAmmount.Value=“”
Me.E1Gkonz.Value=“”
Me.E1GUnit.Value=“”
调用GetData
端接头
Chr(34)而不是“(双引号) 双引号内不能有双引号。因此,必须使用Chr函数将“内”双引号替换为Chr(34),这将为您提供:

    'IF Statement compiling Error "=IF([@[Rest Tubes]]<>"N/A""
  .Cells(lrow, 11).FormulaLocal = "=IF([@[Rest Tubes]]<>" & Chr(34) & "N/A" & Chr(34) & ",[@Pieces]-[@[Auslagerung Total]]/" & "[@[Number of tubes Ammount]],[@Pieces]-[@[Auslagerung pcs]])"

    'IF Statement compiling Error "=IF([@[Rest Tubes]]="N/A""
  .Cells(lrow, 12).FormulaLocal = "=IF([@[Number of tubes Ammount]]=" & Chr(34) & "N/A" & Chr(34) & ";" & Chr(34) & "N/A" & Chr(34) & ";[@Pieces]*[@[Number of tubes Ammount]]-[@[Auslagerung Total]])"
“IF语句编译错误”=IF([@[Rest Tubes]]”不适用
.Cells(lrow,11).FormulaLocal=“=IF([@[剩余管]]”和Chr(34)和“N/A”&Chr(34)&“,[@件]-[@[澳大利亚总管数]]/”&“[@[澳大利亚总管数]],[@件]-[@[澳大利亚总管数]])”
“IF语句编译错误”=IF([@[Rest Tubes]]=“不适用”
.Cells(lrow,12).FormulaLocal=“=IF([@[管数量]]=”&Chr(34)&“N/A”&Chr(34)&“&Chr(34)&”&Chr(34)&“&Chr(34)&“N/A”&Chr(34)&”[@Pieces]*[@[管数量]-[@[Auslagerung总计])”
为了便于阅读,建议不要每行传递80个字符,因此不要害怕在每行末尾用“ux”分隔行:

    'IF Statement compiling Error "=IF([@[Rest Tubes]]<>"N/A""
  .Cells(lrow, 11).FormulaLocal = "=IF([@[Rest Tubes]]<>" & Chr(34) _
      & "N/A" & Chr(34) & ",[@Pieces]-[@[Auslagerung Total]]/" _
      & "[@[Number of tubes Ammount]],[@Pieces]-[@[Auslagerung pcs]])"

    'IF Statement compiling Error "=IF([@[Rest Tubes]]="N/A""
  .Cells(lrow, 12).FormulaLocal = "=IF([@[Number of tubes Ammount]]=" _
      & Chr(34) & "N/A" & Chr(34) & ";" & Chr(34) & "N/A" & Chr(34) _
      & ";[@Pieces]*[@[Number of tubes Ammount]]-[@[Auslagerung Total]])"
“IF语句编译错误”=IF([@[Rest Tubes]]”不适用
.Cells(lrow,11).FormulaLocal=“=IF([@[Rest-Tubes]]”和Chr(34)_
&“不适用”&Chr(34)和“,[@Pieces]-[@Auslagerung Total]/”_
&“[@[每根管子的数量]],[@根]-[@[每根管子的数量]]”
“IF语句编译错误”=IF([@[Rest Tubes]]=“不适用”
.Cells(lrow,12).FormulaLocal=“=IF([@[每支管子的数量]]=”_
&公司注册纪录(34)及“不适用”及“公司注册纪录(34)”及“、公司注册纪录(34)及“不适用”及公司注册纪录(34)_
&“;[@根数]*[@[每根管子的数量]-[@[总数]])”

问题是你的引号不正确。引号中的引号需要加倍……但你是在寻找
#N/A
错误,因为如果是这样,那就不是正确的方法。@ashleedawg:我想他只是在问为什么每当他取消这两行的注释时,代码都不会编译。是的,我不知道怎么做公式编译。Thx的帮助总是很高兴能为您服务。感谢您的奖励。
    'IF Statement compiling Error "=IF([@[Rest Tubes]]<>"N/A""
  .Cells(lrow, 11).FormulaLocal = "=IF([@[Rest Tubes]]<>" & Chr(34) _
      & "N/A" & Chr(34) & ",[@Pieces]-[@[Auslagerung Total]]/" _
      & "[@[Number of tubes Ammount]],[@Pieces]-[@[Auslagerung pcs]])"

    'IF Statement compiling Error "=IF([@[Rest Tubes]]="N/A""
  .Cells(lrow, 12).FormulaLocal = "=IF([@[Number of tubes Ammount]]=" _
      & Chr(34) & "N/A" & Chr(34) & ";" & Chr(34) & "N/A" & Chr(34) _
      & ";[@Pieces]*[@[Number of tubes Ammount]]-[@[Auslagerung Total]])"