我对vba很新,并且有一个相当简单的问题 . 有人可以帮忙:
我没有选择特定的单元格,而是希望我的vba宏转到感兴趣的列的底部,跳过,下面的两个单元格执行以下操作:
Range("W72").Select
Selection.NumberFormat = "General"
ActiveCell.FormulaR1C1 = "Null_value"
Range("X72").Select
Selection.NumberFormat = "General"
ActiveCell.FormulaR1C1 = "=R[-2]C[1]-SUM(R[-2]C[-8]:R[-2]C[-6])"
如您所见,上面的代码指的是特定的单元格W72和X72 . 目前,这些列中的最后一个条目是在W70和X70中,但是下个月我的数据集会变大,因此W72和X72不是执行上述操作的正确位置 . 我如何纠正这个问题,使得我的vba代码自动转到W(n)的底部:X(n),跳过一行,在W(n 2)中,X(n 2)执行上面的代码 .
另外,我的上面的公式(ActiveCell.FormulaR1C1)也指特定的单元格,在我的案例中,Row 70左边是几列,但正如你可能知道的那样,由于行引用每个月都有变化,所以也有同样的问题 . 我需要让我的vba让公式获取这些列的最后一行,列是P,Q,R .
感谢您的任何帮助,您可以提供 .
更新:我的同一个工作项目的一部分,如果有人也可以帮助我,我将不胜感激 . 谢谢:
大家好,
我目前有一个变量的输入框,每个月都会变化:
r_mo = Application.InputBox(prompt:=“将报告月份输入为YYYYMM(例如:201604) . 此条目中的错误将导致结果出错 . ”)
这会提示输入框,必须手动输入...但是,我想自动执行此过程并消除对输入框的需要 . 在vba中是不是现在会自动生成今天的日期 .
从现在或系统功能,我想要做的是提取四位数的年份和两位数的月份 .
例如,如果我们在2016年的decemeber
Sub asasdas()
“现在功能”r_mo = YYYYMM'自动从“现在功能”更新
结束子
我感谢你能给我的任何帮助,非常感谢你们 .
3 回答
您可以使用以下代码在VBA中获取给定列的最后一行(在我的示例中为W):
当然,如果你再添加2到
lastRow
,你就有了你正在寻找的单元格 .我会这样做的
如果你想要一个更详细的答案,你将不得不提出一个新的问题,但对于你的第二个问题,试试这个 .