使用变量表示范围内的列字母

时间:2018-11-12 10:33:07

标签: excel vba range

代码段:
我使A中的值等于B中的值。

Set A = Workbooks("SwbA").Worksheets("SwsA").Range("A1:A10")
Set B = Workbooks("twbB").Worksheets("twsB").Range("G1:G10")
A.value = B.value

我想声明一个变量,例如

Dim col AS STRING
col = "A" 

所以我可以为此做些事情-

Set A = Workbooks("SwbA").Worksheets("SwsA").Range(col&1:col10)

enter image description here

请注意,我不想这样做-

col = "A1:A10" '--> this works, for other reasons I want to manipulate Column letter only

2 个答案:

答案 0 :(得分:0)

我看不到您的图片,但您可以

 Dim Col As String
 Col = "A"
 Dim r As Range
 Set r = Range(Col & "1:" & Col & "10")

答案 1 :(得分:0)

列问题

将一列声明为变体时,可以使用字母数字。那么Cells属性就适合使用。

行数

Sub NumberOfRows()

  Const cW1 As String = "twbB"  ' Source Sheet or Book
  Const cW2 As String = "SwbA"  ' Target Sheet or Book

  Const cCol1 As Variant = "G"  ' Source Column Letter/Number
  Const cCol2 As Variant = "A"  ' Target Column Letter/Number
  Const cFirst As Long = 1      ' First Row
  Const cLast As Long = 10      ' Number of Rows

  Dim rngB As Range             ' Source Range
  Dim rngA As Range             ' Target Range

  Set rngB = Workbooks(cW1).Worksheets(cW1).Cells(cFirst, cCol1).Resize(cLast)
  Set rngA = Workbooks(cW2).Worksheets(cW2).Cells(cFirst, cCol2).Resize(cLast)

  rngA.Value = rngB.Value

End Sub

最后一行

Sub LastRow()

  Const cW1 As String = "twbB"  ' Source Sheet or Book
  Const cW2 As String = "SwbA"  ' Target Sheet or Book

  Const cCol1 As Variant = "G"  ' Source Column Letter/Number
  Const cCol2 As Variant = "A"  ' Target Column Letter/Number
  Const cFirst As Long = 1      ' First Row
  Const cLast As Long = 10      ' Last Row

  Dim rngB As Range             ' Source Range
  Dim rngA As Range             ' Target Range

  Set rngB = Workbooks(cW1).Worksheets(cW1).Range(Cells(cFirst, cCol1), Cells(cFirst, cCol1))
  Set rngA = Workbooks(cW2).Worksheets(cW2).Range(Cells(cFirst, cCol2), Cells(cFirst, cCol2))

  rngA.Value = rngB.Value

End Sub