![](/img/trans.png)
[英]How to loop over a multi-row/column range per column using Excel 2007 VBA?
[英]How to rename range using VBA in excel 2007
我有8年以上的PHP和Java专业编程经验,但没有VBA的经验。 立即学习。
我正在尝试制作房屋预算表(仅出于VBA学习目的)。 为此,我已经完成了
* In new excel (2007) file, rename sheet 1 as 'Forms' And Sheet2 as 'CatAcc'
* In sheet 'CatAcc', I'm using (planning) column A for categories and B for Account
* Row 1 is heading (A1 = "Categories", B1="Account"
* Using forms sheet (cell C2) & VBA button, I want to add a new category,
sort it alphabetically and then rename range to add newly added row.
我为此编写了以下代码(已记录testmacro以检查如何命名范围)
Sub AddCat_Click()
'Copy data as last row
Worksheets("CatAcc").Cells(Rows.Count, "A").End(xlUp).Offset(1).Value = Worksheets("Forms").Cells(2, "C").Value
'Find total Rows in categories
Dim totalRows
totalRows = Worksheets("CatAcc").Range("A2").End(xlDown).Row
'Define Range
Dim rng
rng = "A2:A" & totalRows
'MsgBox rng
'Select the range - Getting error in following line.
Worksheets("CatAcc").Range(rng).Select
'Name the range
ActiveWorkbook.Names.Add Name:="categories", RefersToR1C1:="=CatAcc!R2C1:R3C1"
'Sort range alphabetically
'Apply range as drop-down options
End Sub
Sub testmacro()
Range("A2:A3").Select
ActiveWorkbook.Names.Add Name:="categories", RefersToR1C1:= _
"=CatAcc!R2C1:R3C1"
End Sub
选择范围时,出现以下错误
Run-time error '1004'
Select method of Range class failed
我无法理解该错误的含义,以及为什么我只能通过添加工作表名称来获取该错误。
同样,以下几行是什么意思? 那里发生了什么事? 我无法理解R2C1:R3C2的含义。 当我将A2:A3单元命名为“类别”时,此值来自录制的宏
ActiveWorkbook.Names.Add Name:="categories", RefersToR1C1:="=CatAcc!R2C1:R3C1"
您无需选择范围Range("A2:A3").Select
。 下一行中的"=CatAcc!R2C1:R3C1"
会自动进行处理。
说明
“= CatAcc R2C1:R3C1”
所以上面也可以写成
ActiveWorkbook.Names.Add NAME:="categories", RefersTo:="=CatAcc!$A$2:$A$3"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.