我有一个如下所示的电子表格:
我正在尝试编写一个宏(最终是一个按钮),它将创建一个新列,当前日期作为第一个空列中的标题,即4月旁边它会说May如果我在5月运行它。
这是我到目前为止所尝试的,但它不起作用:
Sub column()
Dim Input_ID As String, Date_in As String
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Facebook")
Date_in = Format(Now, "MMM-YY")
With ws.Range("2" & ws.Columns.Count).End(xlUp)
If .column >= c Then .Offset(1, 0).Value = Date_in Else Exit Sub
End With
End Sub
答案 0 :(得分:3)
首先,我们需要在工作表中找到最后填充的单元格,在这种情况下,我们将通过转到第2行中的最后一个单元格来找到它:
ws.Cells(2, .Columns.Count)
然后,当我们在第2行的最后一个单元格中时,我们使用.End(xlToLeft)
属性一直向同一行中的左侧查找包含数据的最后一个单元格,然后将列索引号存储在变量LastCol
因为我们需要它。
LastCol = .Cells(2, .Columns.Count).End(xlToLeft).column
正如我们所说LastCol
它不是实际的下一个空列,所以我们在LastCol
变量中添加1来定位下一个空列。
最后,我们将Date_in
字符串值放在第2行的下一个空列
.Cells(2, LastCol + 1) = date_in
完整代码:
Option Explicit
Sub column()
Dim Input_ID As String, date_in As String
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
date_in = Format(Now, "MMM-YY")
With ws
LastCol = .Cells(2, .Columns.Count).End(xlToLeft).column
.Cells(2, LastCol + 1) = date_in
End With
End Sub
答案 1 :(得分:0)
以下内容如何:
Sub AddColumn()
Dim ws As Worksheet: Set ws = Sheets("Facebook")
ws.Columns("C:C").Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
ws.Range("C1").Value = Format(Now(), "MMM-YY")
End Sub