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

excelVBA中我想使用Range函数将列作为变量怎么表示,比如Range("a3:a2012"),Range("b3:b2012"),Range("c3:c2012"... 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
展开
 我来答
大海TDa
2013-07-21
知道答主
回答量:23
采纳率:100%
帮助的人:8.7万
展开全部
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)
这样的语句
岁月不及你动人
2018-03-31 · TA获得超过1.1万个赞
知道小有建树答主
回答量:115
采纳率:100%
帮助的人:3.4万
展开全部

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的宏功能。

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
niwanpeng9
2018-04-18 · TA获得超过263个赞
知道小有建树答主
回答量:483
采纳率:81%
帮助的人:95.3万
展开全部
首先range是属性,不是函数,它本身表示一个区域引用,而不是说它作为函数返回一个区域。
将列作为变量一般可以用cells(row,col)属性中的col(列号)作为变量,作为区域引用的Range属性可以用range(cells(row1,col1),cells(row2,col2))来表示
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yancy205
2019-03-15
知道答主
回答量:1
采纳率:0%
帮助的人:764
展开全部
亲测以下方式可行
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
班碧白0Gl
2013-07-21 · TA获得超过341个赞
知道小有建树答主
回答量:733
采纳率:0%
帮助的人:439万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(7)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式