组织macros观组合,勾画(需要调整macros应用的区域)

如何从A4应用这个而不是A2。 我很满意的一切。 我只是想了解我需要做的任何改变。

“设定人口”需要改变吗? 2?

Sub formatresults() Dim lastRow As Long Dim pop As Range Dim rpSet As Range Dim rpSetNames As Range Dim sBeg As Integer Dim sEnd As Integer Dim rpName As String Dim x As Integer Dim y As Integer lastRow = Range(Cells(99999, 1), Cells(99999, 1)).End(xlUp).row Set pop = Range(Cells(2, 1), Cells(lastRow, 7)) sBeg = 2 sEnd = 2 y = 1 rpName = Cells(2, 1) Range(Cells(1, 7), Cells(lastRow, 7)).NumberFormat = "0.00%" For x = 2 To lastRow If Cells(sEnd + 1, 1) = rpName Then sEnd = sEnd + 1 Else Set rpSet = Range(Cells(sBeg, 1), Cells(sEnd, 7)) Set rpSetNames = Range(Cells(sBeg, 1), Cells(sEnd, 1)) rpSet.BorderAround Weight:=xlMedium If y Mod 2 = 1 Then rpSetNames.Interior.ColorIndex = 15 sBeg = sEnd + 1 sEnd = sEnd + 1 rpName = Cells(sBeg, 1) y = y + 1 End If Next x End Sub 

非常感谢!

我添加了一个新的variablesStartFrom以便您只需要更改一次该值,以使其工作在不同的范围。

另外,我改变了lastRow的定义,看看Error在VBA中find最后一个使用过的单元格

试试这个:

 Sub formatresults() Dim lastRow As Long Dim pop As Range Dim rpSet As Range Dim rpSetNames As Range Dim sBeg As Integer Dim sEnd As Integer Dim rpName As String Dim x As Integer Dim y As Integer, _ StartFrom As Integer StartFrom = 4 lastRow = Range("A" & Rows.Count).End(xlUp).Row Set pop = Range(Cells(StartFrom, 1), Cells(lastRow, 7)) sBeg = StartFrom sEnd = StartFrom y = 1 rpName = Cells(StartFrom, 1) '---- Range(Cells(1, 7), Cells(lastRow, 7)).NumberFormat = "0.00%" For x = StartFrom To lastRow '---- If Cells(sEnd + 1, 1) = rpName Then sEnd = sEnd + 1 Else Set rpSet = Range(Cells(sBeg, 1), Cells(sEnd, 7)) Set rpSetNames = Range(Cells(sBeg, 1), Cells(sEnd, 1)) rpSet.BorderAround Weight:=xlMedium If y Mod 2 = 1 Then rpSetNames.Interior.ColorIndex = 15 sBeg = sEnd + 1 sEnd = sEnd + 1 rpName = Cells(sBeg, 1) y = y + 1 End If Next x End Sub