2013-02-14 10 views
1

Я создаю макрос в Excel для копирования данных с одного листа на другой в пределах одной и той же книги. В настоящее время код работает как так:Excel VBA Macro: копирование ячеек по ссылке

Dim sourceSheet As Worksheet 
Dim destSheet As Worksheet 
Dim numCases As Integer 
Dim i As Integer 

numCases = 10 
Set destSheet = ThisWorkbook.Sheets("Raw_Data") 
Set sourceSheet = ThisWorkbook.Sheets("Formatted_Data") 

For i = 1 To numCases 
    destSheet.Cells(i,1).Value = sourceSheet.Cells(1,i).Value 
Next 

Этот код работает должным образом в том, что она копирует значение из одного листа на другой и помещает его в соответствующую ячейку. Проблема в том, что мне нужно, чтобы ячейка была заполнена как контрольное значение обратно на лист «Raw_Data». Другими словами, когда я выбираю ячейку в «Formatted_Data», мне нужна панель формул, чтобы показать что-то вроде: «Raw_Data»! C1 , но вместо этого все, что я получаю, это числовое значение. Есть ли способ, которым я могу выполнить копию, или установить значение и сохранить ссылку?

Спасибо,

Баррет

ответ

3

Заменить

destSheet.Cells(i,1).Value = sourceSheet.Cells(1,i).Value

С

sourceSheet.Cells(1,i).Formula = "=" & destSheet.Name & "!" & destSheet.Cells(i,1).Address(False,False)

+1

Я дам этому попытку и доложить. Спасибо. –

+0

Спасибо за помощь. Это поставило меня на правильный путь. Я действительно нуждался в следующем: 'destSheet.Cells (i, 1) .Formula =" = "&" '"& sourceSheet.Name &"' "&"! " & sourceSheet.Cells (1, i) .Address (False, False) ' –

+0

@BarretBrown Ah. Рад, что ты это понял. Это то, что я написал сначала, но я отредактировал его после повторного повторного чтения вашего вопроса. Так много для 2-го угадывания! –

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