電子書籍の厳選無料作品が豊富!

いつもお世話になっております
何度もすみません。
この似たような 質問これで最後にいたします。
なんとか、おしえてくれませんでしょうか

下記のコードを変更したところ
エラーになってしまいます。

変更前
'If Range(v(0)).Text = Range(v(1)).Text Then

変更後

If Left(Range(v(0)).Text, InStr(Range(v(0)).Text, " ") - 1) = _
Left(Range(v(1)).Text, InStr(Range(v(1)).Text, " ") - 1) Then


F列             H列
佐藤 太郎        佐藤 太郎      色を付ける 佐藤
内藤 小太郎     タナカ きすく 
近藤 小太郎     近藤 小太郎     色を付ける 近藤
加藤 太郎       遠藤 ききき 
遠藤 ははは     遠藤 はい       色を付ける 遠藤

-----------------------------------------------------

Sub effa()
Dim i As Long, iC As Long
Dim v

iC = 0

For i = 6 To Cells(Rows.Count, "F").End(xlUp).Row
With Union(Cells(i, "F"), Cells(i, "H"))

v = Split(.Address, ",")

If Left(Range(v(0)).Text, InStr(Range(v(0)).Text, " ") - 1) = _
Left(Range(v(1)).Text, InStr(Range(v(1)).Text, " ") - 1) Then

.Interior.ColorIndex = 8
Else
.Interior.ColorIndex = 0
End If

End With
Next

End Sub

質問者からの補足コメント

  • うーん・・・

    左側の空白から左側の文字が同じならばという
    条件をつけたのですが

    No.1の回答に寄せられた補足コメントです。 補足日時:2022/02/02 23:03
  • うーん・・・

    補足がへんです

    失礼いたしました。

    文字の左側から最初の空白の左側が同じならば


    遠藤 京子 遠藤 つよし 

    空白の左側が同じということです。

    よろしくお願いいたします。

      補足日時:2022/02/02 23:06

A 回答 (4件)

No3です



連投失礼。
No3だと、空白セルがあると文字の分割ができないためエラーになりますね。
大変失礼いたしました。
以下、訂正しておきます。

Sub Q12787514()
Dim c, d, col

For Each c In Range(Cells(6, 6), Cells(Rows.Count, 6).End(xlUp))
col = xlNone
If c <> "" And c.Offset(, 2) <> "" Then
d = Split(Replace(Trim(c.Offset(, 2)), " ", " "), " ")(0)
If d = Split(Replace(Trim(c), " ", " "), " ")(0) Then col = 8
End If
Union(c, c.Offset(, 2)).Interior.ColorIndex = col
Next c
End Sub
    • good
    • 1
この回答へのお礼

ありがとうございました。
思ったととおりです。

お礼日時:2022/02/03 07:17

こんばんは



元データのばらつきの可能性ががどの程度あるのか不明ですけれど・・

Sub Q12787514()
Dim c, c1, c2, col

For Each c In Range(Cells(6, 6), Cells(Rows.Count, 6).End(xlUp))
c1 = Split(Replace(Trim(c), " ", " "), " ")(0)
c2 = Split(Replace(Trim(c.Offset(, 2)), " ", " "), " ")(0)
If c1 = c2 Then col = 8 Else col = xlNone
Union(c, c.Offset(, 2)).Interior.ColorIndex = col
Next c
End Sub
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2022/02/03 07:12

No.1の者です。



名前の間以外に、空白が前後にもあるのでしょうか?
Trimで、前後の文字を消す事が可能です。

IF Split(Trim(Range(v(0)).Text)," ")(0) = Split(Trim(Range(v(1)).Text)," ")(0) Then
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2022/02/03 07:12

こんばんは。



例えば、下記の様な感じではどうでしょうか?

IF Split(Range(v(0)).Text," ")(0) = Split(Range(v(1)).Text," ")(0) Then
この回答への補足あり
    • good
    • 0
この回答へのお礼

ありがとうございました。

お礼日時:2022/02/03 07:12

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!