在A栏中将每个字母更改为参考

时间:2015-10-22 18:08:48

标签: excel vba excel-vba selectionchanged

我有这个需要更改值的电子表格,

A       B   C   D   E   F   G
5       e   e   z   z   u   u
10      e   e   z   z   u   u
20      e   e   z   z   u   u
30      e   e   z   z   u   u
40      e   e   z   z   u   u
50      e   e   z   z   u   u

那么,那里的每一封信都需要改为A栏中的参考。

现在,我的代码是:

Sub Macro1()'


'Line 2
Range("C2:H2").Select
Selection.Replace What:="e", Replacement:=Range("A2").Value, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Selection.Replace What:="z", Replacement:=Range("A2").Value, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False

Selection.Replace What:="u", Replacement:=Range("A2").Value, LookAt:=xlPart, _
SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, _
ReplaceFormat:=False
End Sub

在原始工作表中,我有超过300行格式化。所有范围E7:BQ7。 所以,我需要制作一个循环,改变选择的范围以及我的参考。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

如果我的帖子与您说的完全相同,这个简单的循环将使E-BQ列中的所有单元格等于每行中A列中的值。

Sub Marco1()

Dim wks As Worksheet
Set wks = Sheets("Sheet1") 'replace with your sheet name

With wks

    Dim lRow As Long
    lRow = .Range("A" & .Rows.Count).End(xlUp).Row 'assumes continuous rows with no blanks in data

    Dim l As Long
    For l = 2 To lRow 'assumes you are starting at row 2

        .Range("E" & l & ":BQ" & l).Value = .Range("A" & l).Value

    Next

End With

End Sub

修改

根据ExcelHero的评论,下面的代码也可以不循环播放。

With wks

    Dim lRow As Long
    lRow = .Range("A" & .Rows.Count).End(xlUp).Row 'assumes continuous rows with no blanks in data

    .Range("E2:BQ" & l).Value = .Range("A2:A" & l).Value

End With