VBA如果声明有时不起作用

时间:2016-03-09 19:06:05

标签: vba if-statement

我制作了一个很长的脚本来重新编写excel文件。所以我和几个人一起工作,他们工作得很好。我试图解决这部分代码的错误:

If InStr(1, Cells(i, 5), "cass", 1) Then
    Cells(i, 135).Value = Cells(i, 135).Value & "/cassetti.jpg::cassetti inox;;/cassetti2.jpg::cassetti inox;;"
End If     

在细胞5中我喜欢" Cassetti"或者" Cassettiera"现在用word" cass"它有时会写在单元格上。这件事让我疯狂了2天......你看到一些我看不到的东西?

编辑: 这是我的代码中更重要的部分:

Cells(1, 135) = "media_gallery"
If InStr(1, Cells(i, 5), "tavol", 1) Or InStr(1, Cells(i, 5), "lav", 1) Or InStr(1, Cells(i, 5), "vasc", 1) Then
Cells(i, 135).Value = img_tav
End If

If InStr(1, Cells(i, 5), "armadiat", 1) Then
Cells(i, 135).Value = img_tav_arm
End If
If InStr(1, Cells(i, 5), "armadio", 1) Then
Cells(i, 135).Value = img_arm
End If
If InStr(1, Cells(i, 5), "arm", 1) And InStr(1, Cells(i, 5), "cass", 1) Then
Cells(i, 135).Value = img_cass_arm
End If
If InStr(1, Cells(i, 5), "caldo", 1) Then
Cells(i, 135).Value = img_caldo
End If
If InStr(1, Cells(i, 5), "labirinto", 1) Then
Cells(i, 135).Value = img_asp
End If
If InStr(1, Cells(i, 5), "lavatoio", 1) Or InStr(1, Cells(i, 5), "vasco", 1) Then
Cells(i, 135).Value = img_lav
End If
If (InStr(1, Cells(i, 5), "lavat", 1) Or InStr(1, Cells(i, 5), "vasco", 1)) Then
If InStr(1, Cells(i, 5), "armad", 1) Then
       Cells(i, 135).Value = img_lav_arm
End If
End If
If InStr(1, Cells(i, 5), "pens", 1) And InStr(1, Cells(i, 5), "scorr", 1) Then
 Cells(i, 135).Value = img_pensile
End If
If Cells(i, 5).Value Like "*cass*" Then
 Cells(i, 135).Value = Cells(i, 135).Value & "/cassetti.jpg::cassetti inox;;/cassetti2.jpg::cassetti     inox;;"
End If

theese是在脚本开头声明的变量:

img_tav = "/piede.jpg::piede in acciaio inox;;/saldatura.jpg::saldatura;;"
img_tav_arm = "/anta.jpg::anta inox scorrevole;;/piede.jpg::piede in acciaio    inox;;/saldatura.jpg::saldatura;;/saldatura2.jpg::saldatura;;/top-raggiato.jpg::Top raggiato  opzionale;;/fianchi.jpg::fianchi inox lisci;;"
img_arm = "/anta.jpg::anta inox scorrevole;;/piede.jpg::piede in acciaio inox;;/saldatura.jpg::saldatura;;/saldatura2.jpg::saldatura;;/fianchi.jpg::fianchi inox lisci;;"
img_cass = "/piede.jpg::piede in acciaio inox;;/saldatura.jpg::saldatura;;/saldatura2.jpg::saldatura;;/top-raggiato.jpg::Top raggiato opzionale;;"
img_cass_arm = "/piede.jpg::piede in acciaio inox;;/saldatura.jpg::saldatura;;/saldatura2.jpg::saldatura;;/top-raggiato.jpg::Top raggiato opzionale;;/fianchi.jpg::fianchi inox lisci;;"
img_caldo = "/caldo.jpg::tavolo caldo;;/anta.jpg::anta inox scorrevole;;/piede.jpg::piede in acciaio inox;;/saldatura.jpg::saldatura;;/saldatura2.jpg::saldatura;;/top-raggiato.jpg::Top raggiato opzionale;;/fianchi.jpg::fianchi inox lisci;;"
img_asp = "/labirinto.jpg::filtri a labirinto;;"
img_lav = "/troppo-pieno.jpg::Troppo Pieno;;"
img_lav_arm = "/troppo-pieno.jpg::Troppo Pieno;;/anta.jpg::anta inox scorrevole;;/piede.jpg::piede in acciaio inox;;/saldatura.jpg::saldatura;;/saldatura2.jpg::saldatura;;/top-raggiato.jpg::Top raggiato opzionale;;/fianchi.jpg::fianchi inox lisci;;"
img_pensile = "/guide-pensili.jpg::Guide Anti Sporco;;/anta.jpg::anta inox scorrevole;;"

所有这些都很好但不是最后的If ..

2 个答案:

答案 0 :(得分:0)

在放置此代码的模块顶部使用Option Compare Text,或者将字符串转换为一致的大小写,例如:

Dim myString as Variant
myString = LCase(Cstr(Cells(1,5).value))
If InStr(1, myString, "cass", 1) Then
    Cells(i, 135).Value = Cells(i, 135).Value & "/cassetti.jpg::cassetti inox;;/cassetti2.jpg::cassetti inox;;"
End If 

答案 1 :(得分:0)

尝试使用$.ajax({ url: "yourphpfile.php" }).done(function() { $( this ).addClass( "done" ); });

Like

它更具可读性,更快且不区分大小写