頭を机にぶつけて答えを得ようとして脳を壊そうとしていますが、脳が働きたくないようです。ここまで来ましたが、それ以上はないようです...
Sub CopyValues()
    Dim i As Integer
    'Internal NCMR
    Dim wsInt As Worksheet
    Dim wsNDA As Worksheet
    'Copy Ranges
    Dim c As Variant
    'Paste Ranges
    Dim p As Range
    'Setting Sheet
    Set wsInt = Sheets("Internal NCMR")
    Set wsNDA = Sheets("NCMR Data")
    Set p = Range("B54:U54")
    With wsInt
        c = Array(.Range("B11"), .Range("B14"), .Range("B17"), .Range("B20"), .Range("B23"), .Range("Q11") _
                , .Range("Q14"), .Range("Q17"), .Range("Q20"), .Range("R25"), .Range("V23"), .Range("V25") _
                , .Range("V27"), .Range("B32"), .Range("B36"), .Range("B40"), .Range("B44"), .Range("D49") _
                , .Range("L49"), .Range("V49"))
    End With
    For i = LBound(c) To UBound(c)
        p(i + 1).Value = c(i).Value
    Next
    With wsNDA
        Worksheets("Internal NCMR").Rows("54").Copy
        Sheets("NCMR Data").Range("B" & Rows.Count).End(xlUp).Offset(1).PasteSpecial Paste:=xlPasteValues
    End With
End Sub
このトピックで説明されているように、このスクリプトのポイントは 3 つあります。
- シートからフィールドを取得し、それらを行に貼り付けます。
- 行を削除して、同じワークブックの別のシートに貼り付けます。
- セル Z1 の 2 番目のシートから、挿入したばかりの行の先頭にコピーします。
私がまだ到達していない 3 番目の部分です。