在VBA中创建新的列标题
我有一个电子表格,如下所示: 我正在尝试编写一个宏(最终是一个按钮),它将创建一个新列,在第一个空列中以当前日期作为标题,也就是说,在四月的旁边,如果我在五月运行它,它将显示五月 这是我迄今为止尝试过的,但不起作用:在VBA中创建新的列标题,vba,excel,Vba,Excel,我有一个电子表格,如下所示: 我正在尝试编写一个宏(最终是一个按钮),它将创建一个新列,在第一个空列中以当前日期作为标题,也就是说,在四月的旁边,如果我在五月运行它,它将显示五月 这是我迄今为止尝试过的,但不起作用: Sub column() Dim Input_ID As String, Date_in As String Dim ws As Worksheet Set ws = ThisWorkbook.Sheets("Facebook") Date_in = Format(Now,
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
首先,我们需要找到工作表中最后一个填充的单元格,在这种情况下,我们将转到第2行的最后一个单元格:
ws.Cells(2, .Columns.Count)
然后,在第2行的最后一个单元格上,我们使用.End(xlToLeft)
属性一直到同一行的左侧,以查找包含数据的最后一个单元格,然后根据需要将列索引号存储在变量LastCol
中
LastCol = .Cells(2, .Columns.Count).End(xlToLeft).column
正如我们所说的,LastCol
不是实际的下一个空列,因此我们在LastCol
变量中添加1以指向下一个空列
最后,我们将Date_放入第2行的下一个空列中的string值中
.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
那么以下内容如何:
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
“它不起作用”是一个相当模糊的问题陈述。你能澄清一下吗?既然你是新来的,你可能想阅读meta,以确保你问的是关于特定编码问题的有用问题。既然OP是VBA的新手,这是一个相当模糊的“请为我做这项工作”的问题,那么至少对你的解决方案做一点解释不是更有帮助,与其鼓励复制意大利面编码,而不教授任何东西?因为OP是VBA的新手,这是一个相当模糊的“请为我做这项工作”的问题,至少对您的解决方案做一点解释不是更有帮助吗,我同意你@Mathieu Guindon补充的解释,希望这对OP和每个人都是清楚的。