我正在尝试改变列的对齐方式以使阅读更加容易,但是即使im指定了J列,它也始终将格式应用于A列
如果我创建一个新的工作表并针对一个简单的1列工作表运行它,它会很好并且按预期工作。但是我需要它来对抗J列
Sub alternateAlignLeft()
Columns("J:J").Select
For rowx = 2 To 1000 Step 2
Cells(rowx, 1).HorizontalAlignment = xlLeft
Next
End Sub
Sub alternateAlignRight()
Columns("J:J").Select
For rowx = 1 To 1000 Step 2
Cells(rowx, 1).HorizontalAlignment = xlRight
Next
End Sub
我需要此代码(仅对J列有效),该代码对A列非常有效。我做错了什么?
答案 0 :(得分:1)
您通常应尽量避免here中所述的.Select
。
尝试以下代码:
Sub alternateAlignLeft()
For rowx = 2 To 1000 Step 2
Cells(rowx, "J").HorizontalAlignment = xlLeft
Next
End Sub
Sub alternateAlignRight()
For rowx = 2 To 1000 Step 2
Cells(rowx, "J").HorizontalAlignment = xlRight
Next
End Sub
要说明:Cells
带有两个参数:RowIndex
和ColumnIndex
。因此,您在列1 A
上执行了格式化。之前出现的.Select
语句实际上根本不会影响此行,因为没有引用Selection
。
请注意,您还应该对所有Range
对象进行限定,如下所示:
ThisWorkbook.Sheets("Sheet1").Cells(rowx, "J").HorizontalAlignment = xlRight
这当然需要根据您的用例进行调整。
答案 1 :(得分:0)
您的Columns("J:J").Select
没有任何作用,因为您随后将选择具有以下内容的特定单元格:
Cells(rowx, 1).HorizontalAlignment = xlLeft
Cells(rowx, 1)
表示第1列“ rowx”行上的单元格,即A。
如果希望它为J,则需要将其更改为10:
Cells(rowx, 10).HorizontalAlignment = xlLeft
和
Cells(rowx, 10).HorizontalAlignment = xlRight