Используйте переменную для обозначения буквы столбца в диапазоне - PullRequest
0 голосов
/ 12 ноября 2018

Фрагмент кода:
Я делаю значение в 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 голосов
/ 22 декабря 2018

Колонка, выпуск

Когда вы объявляете столбец как вариант, вы можете использовать либо Letter , либо Number . Свойство 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
0 голосов
/ 12 ноября 2018

Я не вижу твоего изображения, но ты можешь сделать

 Dim Col As String
 Col = "A"
 Dim r As Range
 Set r = Range(Col & "1:" & Col & "10")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...