我对VBA很新,需要一些项目帮助 . 我需要编写一个宏来读取列C中的工作表名称,并将源工作簿中的值粘贴到目标工作簿中的范围,该范围在列D中指定 .

因此,例如,它需要复制Myworkbook book的Sheet2中的数据,并将其粘贴到他们的工作簿Sheet2的范围内 . 范围和工作表编号信息存储在单独工作簿中的位置 .

编辑:我添加了一张wbOpen的图片 . This is it here.

Option Explicit

Sub PasteToTargetRange()

Dim arrVar As Variant 'stores all the sheets to get the copied

Dim arrVarTarget As Variant 'stores names of sheets in target workbook

Dim rngRange As Range 'each sheet name in the given range

Dim rngLoop As Range 'Range that rngRange is based in

Dim wsSource As Worksheet 'source worksheet where ranges are found

Dim wbSource As Workbook 'workbook with the information to paste

Dim wbTarget As Workbook 'workbook that will receive information

Dim strSourceFile As String 'location of source workbook

Dim strTargetFile As String 'location of source workbook

Dim wbOpen As Workbook 'Current open workbook(one with inputs)

Dim wsRange As Range 'get information from source workbook

Dim varRange As Range 'Range where values should be pasted

Dim i As Integer 'counter for For Loop

Dim wbkNewSheet As Worksheet 'create new worksheet if target workbook doesn't have

Dim wsTarget As Worksheet 'target workbook worksheet

Dim varNumber As String 'range to post

Set wbOpen = Workbooks.Open("WorkbookWithRanges.xlsx")

'Open source file

MsgBox ("Open the source file")

strSourceFile = Application.GetOpenFilename

If strSourceFile = "" Then Exit Sub

Set wbSource = Workbooks.Open(strSourceFile)

'Open target file

MsgBox ("Open the target file")

strTargetFile = Application.GetOpenFilename

If strTargetFile = "" Then Exit Sub

Set wbTarget = Workbooks.Open(strTargetFile)

'Activate transfer Workbook

wbOpen.Activate

Set wsRange = ActiveSheet.Range("C9:C20")

Set arrVarTarget = wbTarget.Worksheets

For Each varRange In wsRange

If varRange.Value = 'Target workbook worksheets

varNumber = varRange.Offset(0, -1).Value

Set wsTarget = X.Offset(0, 1)

wsSouce.Range(wsTarget).Value = varNumber

Else

wbkNewSheet = Worksheets.Add

wbkNewSheet.Name = varRange.Value

End If

Next

End Sub

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐