ここから本文です

VBA マクロ 担当者名の入力

tom********さん

2010/4/2812:44:47

VBA マクロ 担当者名の入力

L6~L123まで○×7+Dというように○には数字かアルファベッド、そして最後の文字が必ずアルファベッドになっている8桁の文字が入っています。(最後のアルファベッドは大文字だったり小文字だったりします)
最後の8桁目のアルファベッドで担当者が割り振られています。
C153~C178にAからZのアルファベッドが、Dの153~D178にはそれぞれの担当者名が入っています。
ボタンひとつでO6~O123までアルファベッドに対応した担当者名を入れたいのですが、担当者名が入ったり入らなかったりでうまく作動しません。

一応自分で作成したソースをのせておきます。

Private Sub CommandButton1_Click()
Dim maxrow As Integer
Dim maxrow2 As Integer


maxrow = Cells(Rows.Count, 12).End(xlUp).Row - 5
maxrow2 = Cells(Rows.Count, 3).End(xlUp).Row - 152


For i = 1 To maxrow

For x = 1 To maxrow2


If Right(Cells(i + 5, 12), 1) = Cells(x + 152, 3) Then

Cells(i + 5, 15) = Cells(x + 152, 4)

Else: Cells(i + 5, 15) = Cells(i + 5, 12)

End If

Next

Next

End Sub


どなたかご教授ください。

Rows.Count,担当者名,Cells,アルファベット,1 To maxrow2,Set hitCell,6 To maxrow

閲覧数:
222
回答数:
1
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

ii3********さん

2010/4/2814:07:47

こんな感じですかね。

Private Sub CommandButton1_Click()
Dim maxrow As Integer
Dim maxrow2 As Integer
Dim code As String
Dim hitCell As Object

Application.ScreenUpdating = True

maxrow = Cells(Rows.Count, 12).End(xlUp).Row
maxrow2 = Cells(Rows.Count, 3).End(xlUp).Row

For i = 6 To maxrow
' 担当者のコード
code = Right(Cells(i, 12), 1)
' 担当者のコードで検索
Set hitCell = Range(Cells(153, 3), Cells(maxrow2, 3)).Find(What:=code)
If Not (hitCell Is Nothing) Then
' ヒットしたセルの1列右にある値を、担当者のセルにセット
Cells(i, 15) = Cells(hitCell.Row, 4)
End If
Next

Application.ScreenUpdating = False
End Sub

この回答は投票によってベストアンサーに選ばれました!

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる