我有点问题。我需要将所选行中的最后两个单元格设置为0。 我在VBA中很新,不知道用什么来实现这一目标。
这是我到目前为止所做的工作,只是值是硬编码的(对于单元格而言)。
Sub SetCellValueToZero()
Dim r As Range
For Each r In Selection.Rows
Cells(r.Row, 3) = "0"
Cells(r.Row, 2) = "0"
Next r
End Sub
任何帮助都将不胜感激。
THX
答案 0 :(得分:3)
Sub SetCellValueToZero()
Dim r As Range
Dim lastCol as Long
For Each r In Selection.Rows
lastCol = ActiveSheet.Cells(r.row, ActiveSheet.Columns.Count).End(xlToLeft).Column
Cells(r.Row, lastCol-1) = "0"
Cells(r.Row, lastCol) = "0"
Next r
End Sub
答案 1 :(得分:1)
要查找连续最右边使用的单元格,可以使用ubyte[] __iter__() {
yield mime;
yield data;
yield header.serialize(); //header.serialize returns a ubyte[]
}
,因为findwindow会在您的问题的评论中暗示。 End(<direction>)
-function的作用相当于在Excel中按End +键。因此,如果您从正在搜索的行的最右边的单元格中执行此操作,它将为您提供最后一个单元格(除非使用最右侧的单元格)。要查找工作表中最右边的单元格,请执行Range.End(xlToLeft)
。
将所有这些放在一起,你的宏看起来像这样:
ActiveSheet.Cells(Selection.Row, ActiveSheet.Columns.Count)
答案 2 :(得分:0)
Function getLastColumn(ByVal inputRng As Range) As Single
Dim nColumn As Single
nColumn = 1
On Error Resume Next
nColumn = inputRng.Find("*", SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column
getLastColumn = nRow
End Function
last2Row = getLastColumn - 1