2013-10-11 2 views
1

Я создаю макрос для отчетов о ходе работы, который будет обновлять общие доходы, затраты и ячейки прибыли для пользователя, только запрашивая у пользователя дату отчета о ходе работы, которую они хотят добавить. У меня это работало, когда все файлы находились на диске перехода, но когда я переместил их все на свой жесткий диск и изменил строку, чтобы она не смотрела в прыгающем диске, она открывает открытое диалоговое окно для каждой ячейки. Он работает, когда вы выбираете нужный файл, но я старался не делать этого таким образом.VBA Excel String Escape backspace character

У меня есть окно ввода, как только вы начинаете макрос, который запрашивает дату в указанном формате. Это прекрасно работает, появляется только один раз, и это то, что я хочу.

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

Есть ли способ избежать этого символа в VBA? Все спасаясь символьная информация, я нашел не за "или" и никогда ничего другого

Range("J38:K38").Select 
    myNum = Application.InputBox("Please enter the date of report to be added EX 5-12-13") 
Dim wkbk As String 
    wkbk = "Documents\Project for dad\Sent\PROGRESS REPORTS " & myNum & ".xls" 

ActiveCell.FormulaR1C1 = _ 
    "=RC[-2]+'[wkbk]Day'!R38C10:R38C11" 
Range("J39:K39").Select 
ActiveCell.FormulaR1C1 = _ 
    "=RC[-2]+'[wkbk]Day'!R39C10:R39C11" 
Range("J40:K40").Select 
ActiveCell.FormulaR1C1 = _ 
    "=RC[-2]+'[wkbk]Day'!R40C10:R40C11" 
+1

'wkbk' должен быть полным путем (начиная с« C: \ »). Также необходимо включить его в формулу типа' .FormulaR1C1 = "= RC [-2] + '[" & wkbk & "] День!! R38C10: R38C11" ' –

ответ

1

У вас есть несколько ошибок с кодом:.

  1. Если путь к файлу плохо вы получите поведение, которое вы описали
  2. вы не используете .FormulaR1C1 правильно

Этот код будет работать, но ваше решение не является надежным:

Sub Test2() 
    'Dim's go at the top 
    Dim wkbk As String 
    Dim RelativeOffSet As String 
    Dim strRange 

    'This is just the file name 
    myNum = Application.InputBox("Please enter the date of report to be added EX 5-12-13") 
    wkbk = "Documents\Project for dad\Sent\PROGRESS REPORTS" 

    'gets the "C:\" from the cell relative to activeCell (h38 after 1st select) 
    RelativeOffSet = "=RC[-2]" 
    Range("J38:K38").Select 
    strRange = "$J$38:$K$38" 

    ActiveCell.FormulaR1C1 = RelativeOffSet 
    ActiveCell.Value = "='" & ActiveCell.Value & wkbk & "[" & myNum & ".xlsx]Sheet1'!" + strRange 
End Sub 
+0

Спасибо, я не знал, что неправильно использовал .FormulaR1C1. –