1

我正在为进度报告制作一个宏,它将通过仅询问用户他们想要添加的进度报告的日期来更新用户的总收入、成本和利润单元格。当所有文件都在跳转驱动器上时,我有这个工作,但是当我将它们全部移动到我的硬盘驱动器并更改字符串以便它不在跳转驱动器中查找时,它会为每个单元格弹出一个打开的对话框。当您选择所需的文件时它可以工作,但我试图不必这样做。

一旦您启动以指定格式询问日期的宏,我就会显示一个输入框。这很好用,只出现一次,这就是我想要的。

我认为这个问题与我的 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"
4

1 回答 1

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
于 2013-10-12T02:26:11.783 回答