您可以为Excel VBA中的特定工作表分配一个“variables名称”
好吧,我已经读过这个:
你可以给Excel中的列variables名称?
从我的理解来看,我基本上可以把“名字”等同于A,这样当我这样做的时候:
For i = 1 to 100 worksheets(Sheet1).Range(Name & i).Value = "poop" next i
它将填满单元格A1:A100。
但是,如果我input:
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栏,而在Sheet2中有满栏的F栏。 也许我太挑剔,因为我知道我可以键入“Sheet1.Name”和“Sheet2.Name”,因为他们是该对象,但我试图避免,因为我已经指定它在工作表( ),这将使代码更清洁。
我想我必须把它放在每个表格的模块,也许作为一个私人,因为他们都被称为“名称”,但我真的不知道…
您将需要创build一个新的范围对象,然后设置该范围对象。 范围可以是一组单元格或一列或一行:
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
码:
Worksheets(Sheet1).Range("A:A").Name = "PoopRange"
然后:
Range("PoopRange")
将始终引用Sheet1,A列。
您可以使用Range("PoopRange").Cells(i,1)
遍历该列中的每个单元格。