连接的string不被我的Sub识别
我做了以下Sub
来帮助我复制其他工作簿中的值,甚至只是从同一工作簿中的其他工作表中复制值。
Private Sub CopyValues(fromSheet As String, fromRange As String, toSheet As String, toRange As String, Optional fromFileName As String = "") Dim toFile As Excel.Workbook Set toFile = ActiveWorkbook Dim fromFile As Excel.Workbook If Len(fromFileName) > 0 Then Set fromFile = Workbooks.Open(fromFileName) Else Set fromFile = ActiveWorkbook End If With ActiveWorkbook toFile.Sheets(toSheet).Range(toRange).Value = fromFile.Sheets(fromSheet).Range(fromRange).Value End With If Len(fromFileName) > 0 Then fromFile.Close savechanges:=False End If End Sub
它工作得很好(如果你觉得有帮助,你可以自由使用它)。 以下是可用的代码示例:
Call CopyValues(reportName, "B4:C15", reportName, "E2:F13", reportDirPath)
不幸的是,我遇到了一个特定情况的麻烦。 我正在寻find相同的值复制到同一列中的多个单元格。 以下是我想到的:
For i = 2 To i = 13 Call CopyValues(reportName, "AJ2", reportName, "H" + i, reportDirPath) Next i
这没有用。 没有错误消息,但没有值粘贴到我的表中。 我想也许连接i
正在转换的整数(是技术字?)string到不同的types,所以我尝试了以下:
For i = 2 To i = 13 Call CopyValues(reportName, "AJ2", reportName, CStr("H" + i), reportDirPath) Next i
这仍然没有工作。 同样的交易。 没有错误消息,但没有值粘贴到我的表中。
将+
更改为&
也无效:
For i = 2 To i = 13 Call CopyValues(reportName, "AJ2", reportName, CStr("H" & i), reportDirPath) Next i
显然,我可以把每个案例都写出来,但这似乎有些荒谬。 任何想法发生了什么?
当我尝试你的代码时你的For循环没有工作,但是当我改变你的for循环来说'For i = 2 to 13',而不是'For i = 2 To i = 13'代码的最后一个版本为我工作。
For i = 2 To 13 Call CopyValues("Sheet1", "A1", "Sheet2", CStr("J" & i)) Next i End Sub
所以我认为这可能是你的麻烦。