Excel中,找到列的第一个和最后一个单元格条目,并使用该列作为另一行的位置
问题是我有很多行,每行中有一个字符串名,表示X个列。 我想找到这些起始列和结束列,并将结果写入同一列不同行的单元格中。期望输出在开始日期和结束日期列中 我尝试使用If和counta函数,计算具有值的列的长度,然后以某种方式尝试“向上”到日期行,并将它们写入开始日期和结束日期单元格。我有点纠结如何在excel中实现这一点Excel中,找到列的第一个和最后一个单元格条目,并使用该列作为另一行的位置,excel,vba,Excel,Vba,问题是我有很多行,每行中有一个字符串名,表示X个列。 我想找到这些起始列和结束列,并将结果写入同一列不同行的单元格中。期望输出在开始日期和结束日期列中 我尝试使用If和counta函数,计算具有值的列的长度,然后以某种方式尝试“向上”到日期行,并将它们写入开始日期和结束日期单元格。我有点纠结如何在excel中实现这一点 对于D列的最后一个单元格,您可以使用它来获取最后一个行号: Range("D" & Rows.Count).End(xlUp).Row 对于D列的第
对于D列的最后一个单元格,您可以使用它来获取最后一个行号:
Range("D" & Rows.Count).End(xlUp).Row
对于D列的第一个单元格,由于您不希望从第1行开始(如果我没有弄错的话),您可以检查值,直到从D2开始的非空字符串:
RowIndex = 1
Do
RowIndex = RowIndex + 1
cellValue = Range("D" & RowIndex).Value
Loop While cellValue = ""
Sub-relative_-fill()
范围(“A2”)。选择
ActiveCell.SpecialCells(xlLastCell)。选择
lr=ActiveCell.Row
lc=(ActiveCell.Column+1)
i=2
而我
选择A4:B4
并根据需要填写
如果您的表格可能更宽,请将公式中的列M
名称替换为一个足够远的列,以便始终包含表格,如果需要,甚至可以使用XFD
Sub relative_fill()
Range("A2").Select
ActiveCell.SpecialCells(xlLastCell).Select
lr = ActiveCell.Row
lc = (ActiveCell.Column + 1)
i = 2
While i <= lr
r = -(i - 1)
Cells(i, 1).Select
Selection.End(xlToRight).Select
ActiveCell.Offset(r, 0).Select
Selection.Copy
Cells(i, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Cells(i, lc).Select
Selection.End(xlToLeft).Select
ActiveCell.Offset(r, 0).Select
Selection.Copy
Cells(i, 2).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
i = i + 1
Wend
End Sub
start Date: A4: =INDEX($D$1:$M$1,MATCH(TRUE,LEN($D4:$M4)>0,0))
end date: B4: =LOOKUP(2,1/(LEN($D4:$M4)>0),$D$1:$M$1)