excel VBA中 Range函数将列作为变量怎么表示?

excel VBA中 我想使用Range函数将列作为变量怎么表示,比如Range("a3:a2012"),Range("b3:b2012"),Range("c3:c2012"),怎么将a,b,c作为变量表示,谢谢!
Workbooks(1).Sheets(2).Range(""m" & 2: "m" & 2012").Value = Workbooks(2).Sheets(7).Range("C3:C2012").Value

range类型的函数有多种形式,您可以尝试用range(cells(行1,列1),cells(行2,列2))这种形式,比较灵活,也可以用cells(行,列)这样的形式表示单元格,还可以用Columns(列)表示一列,也可以用range(columns(列1),columns(列2))来表示连续的多列,这里的"行"和"列"都是整数,不是字母.数字有时会比字母更灵活

您补贴上来的内容是行不通的,区域赋值不可以直接进行,而是要对该区域内的每一个单元格赋值,对于您想表达的意思,有必要外加一个FOR循环来解决这个问题,最关键的赋值语句应该是类似
range(....).cells(r,c)=range(XXXX).cells(r,c)
这样的语句
温馨提示:答案为网友推荐,仅供参考
第1个回答  2018-03-31

range类型的函数有多种形式,具体如下:

1.您可以尝试用range(cells(行1,列1),cells(行2,列2))这种形式,比较灵活;

2.也可以用cells(行,列)这样的形式表示单元格;

3.还可以用Columns(列)表示一列;

4.也可以用range(columns(列1),columns(列2))来表示连续的多列。

这里的"行"和"列"都是整数,不是字母,数字有时会比字母更灵活。

    Microsoft Excel是微软公司的办公软件Microsoft office的组件之一,是由Microsoft为Windows和Apple Macintosh操作系统的电脑而编写和运行的一款试算表软件。Excel 是微软办公套装软件的一个重要的组成部分,它可以进行各种数据的处理、统计分析和辅助决策操作,广泛地应用于管理、统计财经、金融等众多领域。

    Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序功能,特别是Microsoft Office软件。也可说是一种应用程式视觉化的Basic 脚本。该语言于1993年由微软公司开发的的应用程序共享一种通用的自动化语言--------Visual Basic For Application(VBA),实际上VBA是寄生于VB应用程序的版本。微软在1994年发行的Excel5.0版本中,即具备了VBA的宏功能。

本回答被网友采纳
第2个回答  2018-04-18
首先range是属性,不是函数,它本身表示一个区域引用,而不是说它作为函数返回一个区域。
将列作为变量一般可以用cells(row,col)属性中的col(列号)作为变量,作为区域引用的Range属性可以用range(cells(row1,col1),cells(row2,col2))来表示
第3个回答  2019-03-15
亲测以下方式可行
Sub test()
Dim ColName1 As String, ColName2 As String, ColNum As Long, a() As Long
Dim i As Integer, j As Integer
ReDim a(1 To 5, 1 To 2)
For i = 1 To 5 '给aa数组赋值
For j = 1 To 2
a(i, j) = i * j
Next
Next
For i = 4 To 10 Step 3 '从4列即“d”列开始

ColNum = i * 1 '起始列的变量表示
ColName1 = GetExcelColumn(i * 1) '起始列变量名称

ColName2 = GetExcelColumn(i * 1 + 1) '终止列变量名称
Sheets("Sheet1").Range(ColName1 & "1:" & ColName2 & "5") = a
'将数组a赋值到 Range:D1:E5, G1:H5,J1:K5
Next

End Sub

Function GetExcelColumn(columnNumber As Long)
Dim div As Long, ColName As String, modulo As Long
div = columnNumber: ColName = vbNullString

Do While div > 0
modulo = (div - 1) Mod 26
ColName = Chr(65 + modulo) & ColName
div = ((div - modulo) / 26)
Loop

GetExcelColumn = ColName
End Function
第4个回答  2013-07-21
Workbooks(1).Sheets(2).Range(cells(2,m), cells(2012,m)).Value
Range 引用单元格时,变量只能为行如range("A" & m) 表示A列第m行的单元格追问

不好意思,刚才运行了下还是不行。

追答

Workbooks(1).Sheets(2).Range(cells(2,m), cells(2012,m))=Workbooks(2).Sheets(7).Range("C3:C2012").Value

相似回答