Arrays 将数组传输到其他工作表

Arrays 将数组传输到其他工作表,arrays,vba,excel,Arrays,Vba,Excel,在一个名为“法兰管理表”的工作表中,我有一个相当大的信息数据库,在另一个名为“证书表”的工作表中,我创建了一个表格,其中包含需要从FMS中填写的字段 我想选择一行信息中的第一个单元格,然后单击按钮,然后填充证书表 我认为实现这一点的方法是使用数组 我创造了这个 Array(“A = Q14”, “B = C12”, “D = Q12”, “K = C11”, “L=C14”, “M=C16”, “N=C17”, “O = C19”, “P = Q19”, “Q=C18”, “T=C27”, “U

在一个名为“法兰管理表”的工作表中,我有一个相当大的信息数据库,在另一个名为“证书表”的工作表中,我创建了一个表格,其中包含需要从FMS中填写的字段

我想选择一行信息中的第一个单元格,然后单击按钮,然后填充证书表

我认为实现这一点的方法是使用数组

我创造了这个

Array(“A = Q14”, “B = C12”, “D = Q12”, “K = C11”, “L=C14”, “M=C16”, “N=C17”, “O = C19”, “P = Q19”, “Q=C18”, “T=C27”, “U=Q27”, “X = C24”, “Y = C25”, “Z=Q24”, “AA=Q25”, “AB=Q26”, “AD = L5", “AE = N30”)
它的用途以及如何在VBA中实现它

这一切都是因为目前您必须在Word文档中手动输入所有信息,并且必须有一种简单的自动填充方法

为清晰起见,请编辑- 我要找的是使用法兰管理矩阵上的信息来填充我在单独工作表上创建的表格

在FMM表中,我有一个-AO字段,这些字段下有大约400行相关信息。
例如,在A列-‘标记ID’,B列-‘行号’,K列-‘图纸编号’等中。。。然后是400行唯一标记ID,依此类推

我在另一张工作表中创建了一张表格,名为“Cert sheet”,它只是FMM上为客户收集的信息中与客户相关的某些信息的可打印版本

我想要的是(例如)单击单元格A10或列A(标记ID字段)中的任何单元格,单击“生成证书”,然后使用FMM Relevant中的字段并填充证书表

例如,再次使用“标记ID”字段。单元格A10需要放置在证书表上的单元格Q14中。

我在上面对数组所做的是证书工作表上FMM=relevant单元格上的列。

您可能会发现在工作簿中创建“配置”工作表并从中读取映射比使用数组更容易

例如,您将映射数据放在A2:B10中,其中ColA有源列字母,ColB有您要填写的表单上的目标单元格

Sub Transfer()
    Dim shtSrc As Worksheet, shtDest As Worksheet, rngConfig As Range
    Dim rwSrc As Range, rwMap As Range

    Set shtSrc = ThisWorkbook.Sheets("Flange Management Sheet")
    Set shtDest = ThisWorkbook.Sheets("Cert Sheet")
    Set rngConfig = ThisWorkbook.Sheets("Config").Range("A2:B10")

    'exit if a range is not selected...
    If TypeName(Selection) <> "Range" Then Exit Sub
    '...or if it's on the wrong sheet
    If Selection.Parent.Name <> shtSrc.Name Then Exit Sub

    'what row is selected?
    Set rwSrc = Selection.Cells(1).EntireRow

    'loop through each row in your config table
    For Each rwMap In rngConfig.Rows

         'make sure this row has a mapping
         If Len(rwMap.Cells(1).Value) > 0 And _
           Len(rwMap.Cells(2).Value) > 0 Then

           'transfer the value
           shtDest.Range(rwMap.Cells(2).Value) = _
                    rwSrc.Cells(1, rwMap.Cells(1).Value).Value

        End If
    Next rwMap

End Sub
子传输()
尺寸shtSrc作为工作表,shtDest作为工作表,rngConfig作为范围
尺寸rwSrc As范围,rwMap As范围
设置shtSrc=ThisWorkbook.Sheets(“法兰管理表”)
Set shtDest=此工作簿.Sheets(“证书工作表”)
设置rngConfig=thiswoolk.Sheets(“配置”).Range(“A2:B10”)
'如果未选择范围,则退出。。。
如果TypeName(选择)“Range”,则退出Sub
“…或者如果它在错误的表单上
如果选择Selection.Parent.Name shtSrc.Name,则退出Sub
'选择了哪一行?
设置rwSrc=Selection.Cells(1).EntireRow
'循环查看配置表中的每一行
对于rngConfig.行中的每个rwMap
'确保此行具有映射
如果Len(rwMap.Cells(1.Value)>0且_
Len(rwMap.Cells(2.Value)>0则
'传递值
shtDest.Range(rwMap.Cells(2.Value)=_
rwSrc.Cells(1,rwMap.Cells(1.Value).Value
如果结束
下一个rwMap
端接头

请避免将外部资源作为问题内容的一部分。。因为它有时可能是一个断开的链接,破坏了问题。。你也可以在这篇文章中用字符来描述你的表格。。这确实需要更多的努力,但请这么做。同意@YohanesKhosiawan许先汉 在这一点上,让我们忘记另一个网站,更好地解释你自己的工作表的结构,以及你想要实现的目标。再次阅读您的问题,并解释“Boom Cert sheet is populated”(填充内容是什么?从哪里?所选单元格与填充行的数据之间的关系是什么,等等)的含义,包括您的数据示例、工作表设置说明等。您好,很抱歉链接,我现在编辑了这篇原创文章,试图更好地解释。