好的,我读过这个:
Can you give columns in Excel a variable name?
根据我的理解,我基本上可以设置" Name"等于A,这样当我这样做时:
For i = 1 to 100
worksheets(Sheet1).Range(Name & i).Value = "poop"
next i
它将用大便填充单元格A1:A100。
但是,如果我输入:
worksheets(Sheet2).Range(Name & i).Value = "poop"
它也会填充A1:A100,现在除了表2之外。
有什么方法可以"姓名"是否特定于工作表?类似的东西:
Sheet1.Name = "A"
Sheet1.Name = "F"
For i = 1 to 100
worksheets(Sheet1).Range(Name & i).Value = "poop"
worksheets(Sheet2).Range(Name & i).Value = "poop"
会导致sheet1的列A充满大便,而表2的列F充满了大便。也许我太挑剔了,因为我知道我可以输入" Sheet1.Name"和" Sheet2.Name"因为他们是该对象,但我试图避免这种情况,因为我已经在Worksheets()中指定了它,它会使代码更清晰。
我在想我必须把它放到每个工作表的模块中,也许作为私人模块,因为他们都被称为"姓名",但我真的不喜欢'知道......
答案 0 :(得分:1)
Worksheets(Sheet1).Range("A:A").Name = "PoopRange"
然后:
Range("PoopRange")
将始终引用Sheet1,A列。
您可以使用Range("PoopRange").Cells(i,1)
遍历该列中的每个单元格。
答案 1 :(得分:0)
您想要创建一个新的范围对象,然后设置该范围对象。范围可以是一组单元格,也可以是列或行:
Dim rngCol as Range
Dim rngGroup as Range
Set rngCol = Worksheets("Sheet1").Range("A:A")
Set rngGroup = Worksheets("Sheet1").Range("A1:F100")
rngCol.Value = "Poop"
rngGroup.Value = "Poop"
或者你可以在设置之后迭代这些:
For each rngCell in rngCol
rngCell.Value = "Poop"
Next rngCell