我必须经常删除大段的行,不幸的是我不能在excel文件本身中编写任何宏。所以我做了另一个Excel文件,其中包含我需要的宏。这也意味着范围是可变的。
我现在需要找到一种方法来删除所选单元格旁边的列中包含“0”的所有行。之后,我需要填写日期并向下拖动选定的单元格,直到最后一行(请参见下图)。
的数据
到目前为止,我有这个:
Private Sub CommandButton4_Click()
Dim RngSelected As Range
Dim dtToday As String
dtToday = Format(Date, "yymmdd")
Set RngSelected = Application.InputBox(Title:="Please select a range", Prompt:="Select range", Type:=8)
For Each cell In RngSelected
cell.Value = dtToday
Next
Dim LastRow As Long
Dim ColC As Long
ColC = RngSelected.Column - 1 'this part seems to identify the correct column (as column number)
LastRow = Range(ColC & Rows.Count).End(xlUp).Row 'this part does not work at the moment
RngSelected.AutoFill Destination:=Range(RngSelected & ":" & RngSelected.Column & LastRow) ' this also does not work currently
End Sub
字符串
任何建议都将得到重视
1条答案
按热度按时间pwuypxnk1#
假设此数据
![](https://i.stack.imgur.com/3nmkE.png)
下面的代码
字符串
![](https://i.stack.imgur.com/IezQf.png)
会把它变成
我强烈建议不要使用
dtToday = Format(Date, "yymmdd")
将日期写入单元格,因为Format
将返回一个看起来像日期的文本String
。但这不再是一个日期,所以你不能用它来计算。始终使用数字日期,如SelRng.Value = Now()
或Date()
,然后使用NumberFormat
。这样,它保持一个数字日期,您可以计算,您可以轻松地改变格式,每当需要的。