【发布时间】:2018-07-26 16:40:00
【问题描述】:
我是 VBA 新手,正在尝试开发一个简单的宏,它可以自动从存储在单个文件夹中的许多不同工作簿中的定义的工作表和范围(总是相同的列,不同的行)中提取某些数据并将它们合并到通过将信息粘贴到预定义的列中,所有行都在另一列之下,从而制作一张主表。通过这个站点的帮助,我能够开发下面的代码,这正是我需要的。但是,我遇到了问题,因为源信息有很多公式,当移动到主工作簿时,返回 '00000000' 而不是正确的值。我认为问题是由于我的宏正在尝试复制和粘贴基础公式(如果我将源信息更改为可以正常工作的值)而不是在粘贴之前将它们转换为值。
因此,我认为我需要做的是修改我的宏,使其仅从源信息中提取值并将这些值粘贴到主工作簿中。
我的代码是:
Sub CopyRange()
Application.ScreenUpdating = False
Dim wkbDest As Workbook
Dim wkbSource As Workbook
Set wkbDest = ThisWorkbook
Const strPath As String = "C:\Users\lci\Desktop\Project Work\Info Gathering\Master Data File\"
ChDir strPath
strExtension = Dir("*.xlsm*")
Do While strExtension <> ""
Set wkbSource = Workbooks.Open(strPath & strExtension)
With wkbSource
.Sheets("Connectivity Path").Range("B8:P" & Range("B" & Rows.Count).End(xlUp).Row).Copy wkbDest.Sheets("BAM Master Consolidated").Cells(Rows.Count, "AV").End(xlUp).Offset(1, 0)
.Sheets("Overdraft Limits").Range("B8:H" & Range("B" & Rows.Count).End(xlUp).Row).Copy wkbDest.Sheets("BAM Master Consolidated").Cells(Rows.Count, "BK").End(xlUp).Offset(1, 0)
.Sheets("General And Bank Relationship").Range("B8:AU" & Range("B" & Rows.Count).End(xlUp).Row).Copy wkbDest.Sheets("BAM Master Consolidated").Cells(Rows.Count, "B").End(xlUp).Offset(1, 0)
.Close savechanges:=False
End With
strExtension = Dir
Loop
Application.ScreenUpdating = True
结束子
任何有关如何解决的帮助将不胜感激。或者,如果我对问题的诊断是错误的(而且很可能是错误的),任何其他解决方法都会非常受欢迎。
提前致谢!
【问题讨论】:
-
你有什么版本的 Excel?
标签: vba excel excel-formula