在具有不同行数的所有图纸上运行VBA格式代码
这里的VBA noob需要一点帮助。我似乎找不到解决办法,也找不到工作 我尽可能地简化它,以得到概念证明 基本思想是用所有边框格式化一个单元格(比如A1),在第一个工作表(例如A1:C10)中的所有数据中向下复制该格式,然后对后续工作表中的数据执行相同的操作。我正在努力解决的是,后续的工作表都有不同的行数,我尝试的任何操作都只是将附加工作表格式化为原始工作表的(A1:C10),即使没有数据在具有不同行数的所有图纸上运行VBA格式代码,vba,loops,excel,Vba,Loops,Excel,这里的VBA noob需要一点帮助。我似乎找不到解决办法,也找不到工作 我尽可能地简化它,以得到概念证明 基本思想是用所有边框格式化一个单元格(比如A1),在第一个工作表(例如A1:C10)中的所有数据中向下复制该格式,然后对后续工作表中的数据执行相同的操作。我正在努力解决的是,后续的工作表都有不同的行数,我尝试的任何操作都只是将附加工作表格式化为原始工作表的(A1:C10),即使没有数据 非常感谢您的帮助。您可以使用以下VBA代码查找列中的最后一行: lastrow = Sheets("She
非常感谢您的帮助。您可以使用以下VBA代码查找列中的最后一行:
lastrow = Sheets("SheetName").Cells(rows.count,columnnumber).end(xlup).row
将columnnumber更改为正在查找的列的编号,例如A列=1。您需要的是一个变量,用于标识任何给定工作表的最后一行。比如说
LastRow = Worksheets("Sheet1").cells(65000,1).end(xlup).row
现在你可以在你的细胞中循环
for i = 1 to LastRow
for j = 1 to 3
Worksheets("Sheet1").cells(i, j) (apply your formatting)
next j
next i
65000是一种安全的方式,因为excel 2003只有那么多行,如果你再高一点,它就会断开,但是你可以使用rows.Count方法-
工作表(“Sheet1”)。单元格(rows.Count,1)。End(xlUp)。Row
但是这个获取最后一行的技巧就是解决这个确切问题的方法。是的,我犯了使用1M行的错误,但正如你所说,这在Excel2003中是行不通的。另外,如果您需要识别最后一列(比如C列并不总是最后一列),我会使用类似于LastColumn=Worksheets(“Sheet1”).cells(1250).end(xltoleft).column
的方法,希望能有所帮助。感谢您的评论,但是如果工作表名称也是动态的呢?您可以只使用ActiveSheet
,或者如果您在运行它时处于特定的工作表中,只需不引用特定的工作表(例如,单元格(i,j)
)