2015-11-06 11 views
0

Я используюпервенствует именованные диапазоны VBA скрипт

Worksheets("Named_ranges").Range("A1").ListNames 

написать список именованных диапазонов в Named_ranges листе, но результат, как

is_pp4 = Checklist!$D$28 

так, чтобы показать содержимое =Checklist!$D$28, Мне нужно нажать F2, а затем Enter. Я попытался выполнить поиск и заменить значение = с =, как это было предложено в других ответах, и оно работает при выполнении из интерфейса Excel, но оно должно выполняться автоматически с помощью сценария VBA, и оттуда метод поиска и замены не решает проблему. Для параметров «Расчеты» установлено значение «Автоматически».

+0

могли бы вы предоставить любой код из того, что вы сделали до сих пор - особенно в том, что вы пишете информацию в камеру. – therak

+0

Весь код vba - 'Sub named_ranges() Рабочие листы (« Named_ranges »). Диапазон (« A1 »). ListNames End Sub', который принимает именованные диапазоны из всей книги и вводит имя в столбце A листа Named_Ranges и значение в столбце B – mutant

+0

Извините за эту строку - решение Rorys должно сработать для вас – therak

ответ

0

Это должно делать то, что вы описали:

With Worksheets("Named_ranges").Range("A1") 
    .ListNames 
    .CurrentRegion.Numberformat = "General" 
    .CurrentRegion.Replace "=", "=", xlPart 
End With 

Edit: Я думаю, что может быть проблема синхронизации с ListNames так что может быть лучше в цикле:

Dim n As Long 
Dim arrData() 
With ActiveWorkbook.Names 
ReDim arrData(1 To .Count, 1 To 2) 
For n = 1 To .Count 
    arrData(n, 1) = .Item(n).Name 
    arrData(n, 2) = .Item(n).RefersTo 
Next n 
End With 
Worksheets("Named_ranges").Range("A1").Resize(UBound(arrData, 1), 2).Value = arrData 
+0

Код работает и выполняется замена, но результат по-прежнему похож на is_pp4 = Контрольный список! $ D $ 28, и мне нужно нажать f2 и войти, чтобы получить содержимое. – mutant

+0

Это сработало для меня, но, возможно, вы отформатировали ячейки как текст, поэтому попробуйте пересмотренную версию. – Rory

+0

Теперь я проверил ваш код, он работает с простым тестовым файлом только с одним именованным диапазоном, но не работает в огромном файле 22 листов с примерно 150 именованными диапазонами (с целью 7000 названных диапазонов), большинство из которых относятся к другим ячейкам и формулы. Поиск и замена с интерфейса excel работает, хотя – mutant

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