2015-12-20 2 views
-1

У меня есть адреса ячеек, заданные в листе excel, и вы хотите напечатать определенную формулу на другом листе excel, ссылаясь на адреса ячеек, приведенные на предыдущем листе. Пожалуйста, предложите функцию vba для этого. Адреса ячеек находятся в строчном формате, поэтому соответствующая строка no. и col. не нужно извлекать из строки. Есть ли в VBA существующая функция?Указывает на адрес ячейки, заданный в строковом формате

+1

Пример вашей строки поможет. –

+0

Например. G2 упоминается (текстовый формат) в ячейке A1 листа 1. Я хочу перейти в ячейку G2 листа 2 и распечатать значение ячейки A2 листа 1. –

ответ

0

Ниже код будет проверить на последнюю строку в колонке Лист1 A и попытаться получить значение, присутствующее в нечетных строках в столбце А и распечатать результат в четной строке номера

Sub testt1() 

Dim ws1 As Worksheet 
Dim ws2 As Worksheet 

Set ws1 = Worksheets("sheet1") 
Set ws2 = Worksheets("sheet2") 


Dim lastRow As Long 

lastRow = ws1.Range("A" & Rows.Count).End(xlUp).Row 


On Error Resume Next 


For i = 1 To lastRow 

t1 = ws1.Cells(i, 1).Value 


t2 = ws2.Range(t1).Value 

ws1.Cells(i + 1, 1).Value = t2 

i = i + 1 

Next 


End Sub 
+0

Привет, я думаю, что я не ясно объяснил проблему. –

+0

Не могли бы вы указать, в каком формате вы получите вход? Я имею в виду адрес ячейки – newjenn

+0

Привет, я думаю, что я не объяснил проблему четко. «G2» упоминается (текстовый формат) в ячейке A1 листа 1. Я хочу перейти в ячейку G2 листа 2 и распечатать значение ячейки A2 листа 1. В принципе, я хочу запустить макрос, потому что в Листе 1 у меня есть несколько адресов ячеек, заданных в текстовом формате, и я хочу напечатать определенные значения в этих адресах сотовой ячейки Sheet2, которые равны адресам ячеек (в текстовом формате), указанным в Sheet1 –

0

Я не уверен, что я правильно понимаю , но метод Range принимает строковый ввод. Для примера, это будет работать:

Worksheets("Sheet2").Range(Worksheets("Sheet1").Range("A1").Value)=Worksheets("Sheet1").Range("A2").Value 

Тот же код, немного легче на глазах:

Dim strLocation As String 
strLocation = Worksheets("Sheet1").Range("A1").Value 
Worksheets("Sheet2").Range(strLocation) = Worksheets("Sheet1").Range("A2").Value 

Является ли это то, что вы хотите сделать? Вам нужна дополнительная помощь в понимании этого?

+0

Спасибо newjenn. –

+0

Я смог напечатать требуемые значения с помощью функции диапазона. Спасибо newjenn. –

Смежные вопросы