2016-01-28 3 views
1

У меня есть эта формулаПреобразовать формулу в УВЕ

=IF(A10='[file1.xls]Sheet1'!$D$1,'[file1.xls]Sheet1'!$F$4,0) 

и ту же формула только 2 изменения клеток

=IF(A11='[file1.xls]Sheet1'!$J$1,'[file1.xls]Sheet1'!$L$4,0) 

Есть ли способ, чтобы перетащить формулу на колонке или преобразовать его в код VBA?

Спасибо

+0

вы можете перетащить вниз для переключения 'A10' для' A11', но поскольку 'D' не находится рядом с' J', а не 'F' рядом с' L', перетащить его трудно. Тем не менее, если вы можете опубликовать скриншоты ваших данных, может быть что-то, что мы могли бы предложить с точки зрения «OFFSET» или «MATCH» или что-то, что поможет в этом. Как бы то ни было, работать без лишних проблем сложно. Существует также много способов трансформировать его с помощью VBA, но опять-таки, контекст важен. –

ответ

0

Я предполагаю, что вы будете знать ячейку вы ориентируетесь для диапазона, чтобы быть в. Таким образом, вы можете использовать эти переменные, чтобы построить вам формулу в VBA

Dim ws As Excel.Worksheet 
Set ws = ActiveWorkbook.Sheets("Sheet1") 

ws.Range("B1").Formula = "=IF(" & targetColumn & targetrow & "='[file1.xls]Sheet1'!$" & targetColumn & "$" & targetrow & ",'[file1.xls]Sheet1'!$" & targetColumn & "$" & targetrow & ",0)" 
+0

Спасибо. Оно работает. – wittman

0

После того, как вы вручную Введены формула в ячейке (например, B10), нажмите Ctrl + G, чтобы попасть в окно отладки, и оттуда типа:

print range("B10").formula 

или

print range("B10").formulaR1C1 

Это то, что вы хотите?

Если вы хотите более сложное решение, которое удваивает " и т. Д., Вы можете использовать a function I wrote many years ago. Unfortunalety Blogger работает в брандмауэре, где я работаю, поэтому я не могу сейчас копировать контент.

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