用值填充单元格范围(Microsoft Excel)
乔纳森(Jonathan)正在创建一个宏,需要用值填充一系列单元格。例如,如果他需要填充范围A1:C1,则当前需要三个语句来填充该范围:
Range("A1") = "Test1" Range("B1") = "Test2" Range("C1") = "Test3"
他想知道是否有一种方法可以将它们填充到单个语句中,类似于以下内容:
Range("A1:C1") = ("Test1","Test2","Test3")
乔纳森(Jonathan)期望的语法很接近,但无法使用。运作方式如下:
Range("A1:C1") = Array("Test1","Test2","Test3")
请注意Array语句的使用,该语句告诉VBA,后面的内容应被视为要在运算符左侧的单元格序列中使用的值序列。有趣的是,您可以将值填充到变量中,也可以使用Array语句,如下所示:
sOne = "Apples" sTwo = "Oranges" sThree = "Artichokes" Range("A1:C1") = Array(sOne, sTwo, sThree)
如果愿意,也可以使用直接变量:
Dim sMyStrings(2) As String sMyStrings(0) = "Apples" sMyStrings(1) = "Oranges" sMyStrings(2) = "Artichokes" Range("A1:C1") = sMyStrings
上面的代码也可以如下重写:
Dim sMyStrings(2) As String sMyStrings = Array("Apples", "Oranges", "Artichokes") Range("A1:C1") = sMyStrings
最后,如果要将值放在单列而不是行中,则需要以这种方式使用Transpose函数:
Range("A1:A3") = Application.Transpose(Array("Test1","Test2","Test3"))
注意:
如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。
_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。
本技巧(11702)适用于Microsoft Excel 2007、2010、2013和2016。您可以在此处为Excel的较旧菜单界面找到此技巧的版本:
链接:/ excel-Filling_a_Range_of_Cells_with_Values [使用值填充单元格范围]。