0

VBA で 2 つの文字列変数を比較する方法を探しています。私が使用している現在のステートメント(目的の結果が得られていない)は次のとおりです。

  • If Variable1 = Variable2 Then...

コードの最初の部分で 2 つの変数を割り当てる VBA マクロがあります。

  • Dim Variable1 as String Variable1 = Left(Range("$F$3").Value, 4)
  • Dim Variable2 as String Variable2 = ("SheetName.B15")

次のステートメントを使用してみましたが、まだ正しく機能しません。

  • If Variable1 Like Variable2 Then...

以前は、ステートメントは最初の変数との文字列比較で機能していましたが、「ABC」文字列をハードコーディングする必要がありました。以下のステートメントのように見えました。

  • If Variable1 = "ABC" Then...

2 つの文字列変数を比較するためのステートメントの構文を知っている人はいますか? または、サブルーチンでそれらを比較してバイナリ結果を返す方法を推奨し、それを比較できますか?

ありがとう!


Windows 8 で VBA for Excel 2013 を実行する

4

2 に答える 2

2

使用できますStrComp

 Sub compare()
        MsgBox StrComp("Stack", "stack") 'alerts -1 
    End Sub

Sub compare()
    MsgBox StrComp("Stack", "stack", 1) 'Compare as text while ignoring case
End Sub

最初のものは大文字と小文字が区別されますが、2番目のものはそうではありません。もちろん、ハードコードされた値を変数に置き換えることができます

于 2013-06-05T23:13:35.963 に答える
0

解決策は次のとおりです。

Variable2 を正しく割り当てていなかったため、関数は目的の結果を生成していませんでした。返信を通じて、貢献してくれた皆さんに感謝します-これが私たちが思いついたものです:

既存のサブルーチンで 2 つの文字列変数を比較するには、次を使用します。

If Variable1 = Variable 2 Then...

独自のサブで 2 つの文字列変数を比較するには、次を使用します。

Sub compare()
    MsgBox StrComp("Stack", "stack") 'alerts -1 
End Sub

Sub compare()
    MsgBox StrComp("Stack", "stack", 1) 'Compare as text while ignoring case
End Sub
于 2013-06-06T17:19:47.103 に答える