【发布时间】:2019-11-20 07:30:00
【问题描述】:
我正在编写一个 Excel 工作簿来获取研究数据,分析每天的价值,然后将输入的数据及其 7 个汇总计算发送到工作簿(命名为测试对象 1,工作表测试 med 1)以进行存档和分析。
range.copy 命令正确地复制了直接(或通过用户窗体)输入的数据范围和带有描述性标题的单元格。
P 列包含从工作簿中的另一个工作表引用的数据,复制时使用了错误的单元格引用。单元格AB16 与来自='[FAVor Study Medication Daily Calculator8.xlsm]Calculations'!AB7 的数据一起复制,(不是...AB16)。该列中的所有 7 个汇总单元格 (AB16 - AB22) 都是如此,但单元格 ab15 和 ab23(对同一工作表上其他单元格的简单引用)被正确复制。
我尝试使用 PasteSpecial 命令,但遇到了另一组问题,接下来我将尝试解决!
我已将问题代码行标记为 ProblemLine:
Dim wsCopyfrom As Worksheet
Dim wsCopyto As Worksheet
'Dim CopyfromLastRow As Long
'Dim CopytoLastRow As Long
'set variables for copy and dest sheets
Set wsCopyfrom = ThisWorkbook.Sheets("EnterData")
Set wsCopyto = ActiveWorkbook.Sheets(medname)
'Find last used row in the copyfrom based on data in column E and the copyto Col A
CopyfromLastRow = wsCopyfrom.Range("E200").End(xlUp).Row
CopytoLastRow = wsCopyto.Range("A200").End(xlUp).Row
'make copy of range, but ensure that all of the block rows are included, to row 10
If CopyfromLastRow > 19 Then
wsCopyfrom.Range("A7:P" & CopyfromLastRow).Copy wsCopyto.Range("A" & CopytoLastRow + 1)
Else
'ProblemLine
wsCopyfrom.Range("A7:q20").Copy wsCopyto.Range("A" & CopytoLastRow + 1)
End If 'if to copy at least to row 19
【问题讨论】: