2013-05-14 5 views
0

Как я могу это сделать код работает правильно, нужно использовать переменнуюИспользование переменных в Sourcedata

Act = InputBox("Today", "Now", Thisday)

Здесь я должен написать: 10513 (имя листа).

Range("AA2").Select

Это хорошо работает

ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, _ 
SourceData:="'10513'!R1C23:R117C23").CreatePivotTable TableDestination:="'[Control LE.xls]10513'!R4C27", _ 
TableName:="Tabla dinámica3", DefaultVersion:=xlPivotTableVersion10 

Это не ...

ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, _ 
SourceData:="' Act '!R1C23:R117C23").CreatePivotTable _ 
TableDestination:="'[Control LE.xls]& Act '!R4C27", TableName:="Tabla dinámica3", _ 
DefaultVersion:=xlPivotTableVersion10 
+0

У вас была возможность попробовать мое предложение? –

ответ

1

Вы просто переходящие в строке Act как имя рабочего листа. Чтобы отправить это имя (хранится в строковой переменной, используйте строковый метод конкатенации, обратите внимание на различия ниже:

Debug.Print "' Act '" 

VS.

Debug.Print "'" & Act & "'" 

Применяя это к вашему фрагмент кода, это должно работать:

ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, _ 
    SourceData:="'" & Act & "'!R1C23:R117C23").CreatePivotTable _ 
    TableDestination:="'[Control LE.xls]& Act '!R4C27", TableName:="Tabla dinámica3", _ 
    DefaultVersion:=xlPivotTableVersion10 
+0

+1, еще одно приятное объяснение. –