Looking for a more condensed method of assigning values by using arrays and fixed ranges
The comment discussion in the original post directly relate to the differences between the ActiveWorkbook and ThisWorkbook. While you code may indeed work, it's not a guarantee. This reference (and this one) have good explanations to illustrate the differences between how you reference a workbook and why you should always pay specific attention to references (whether it's to the Workbook or Worksheet or Range).
As explained in the comments, because you specifically identify the worksheet for all the .Value2 data, you don't need to loop through all the worksheets. This will reduce the setup of your array to
Dim wbDataSource As Workbook
Set wbDataSource = Workbooks(&quot;Segment Trends Data.xlsx&quot;)

Dim Data(13) As Variant
With wbDataSource
    Data(0) = .Worksheets(&quot;Report1&quot;).Range(&quot;A1&quot;).Value2
    Data(1) = .Worksheets(&quot;Report1&quot;).Range(&quot;A5:H11&quot;).Value2
    Data(2) = .Worksheets(&quot;Report2&quot;).Range(&quot;A1&quot;).Value2
    Data(3) = .Worksheets(&quot;Report2&quot;).Range(&quot;A5:H11&quot;).Value2
    Data(4) = .Worksheets(&quot;Report3&quot;).Range(&quot;A1&quot;).Value2
    Data(5) = .Worksheets(&quot;Report3&quot;).Range(&quot;A5:H11&quot;).Value2
    Data(6) = .Worksheets(&quot;Report4&quot;).Range(&quot;A1&quot;).Value2
    Data(7) = .Worksheets(&quot;Report4&quot;).Range(&quot;A5:H11&quot;).Value2
    Data(8) = .Worksheets(&quot;Report5&quot;).Range(&quot;A1&quot;).Value2
    Data(9) = .Worksheets(&quot;Report5&quot;).Range(&quot;A5:H11&quot;).Value2
    Data(10) = .Worksheets(&quot;Report6&quot;).Range(&quot;A1&quot;).Value2
    Data(11) = .Worksheets(&quot;Report6&quot;).Range(&quot;A5:H11&quot;).Value2
    Data(12) = .Worksheets(&quot;Report7&quot;).Range(&quot;A1&quot;).Value2
    Data(13) = .Worksheets(&quot;Report7&quot;).Range(&quot;A5:H11&quot;).Value2
End With

Notice that I've changed the With clause to reference the wbDataSource workbook so that's it's very clear where all your data is coming from.
The code you've written actually doesn't need an array, in fact the array obscures what the code is really trying to do. What exactly is Data(0) or Data(11)? You might find it tedious, but I would more clearly define what information all those variables hold. As an example
Dim reportTitle As String
Dim reportDescription As String
Dim regionNumber As Long
Dim regionManager As String

With wbDataSource
    reportTitle = .Worksheets(&quot;Report1&quot;).Range(&quot;A1&quot;).Value2
    reportDescription = .Worksheets(&quot;Report1&quot;).Range(&quot;A5:H11&quot;).Value2
    regionNumber = .Worksheets(&quot;Report2&quot;).Range(&quot;A1&quot;).Value2
    regionManager = .Worksheets(&quot;Report2&quot;).Range(&quot;A5:H11&quot;).Value2
    ...
End With

Now when you come back to make an update to your code in six months, you don't have to remember what each of those array slots actually means.
Finally, getting back to the original question of your post, there's no magic or easy way to make the assignments to multiple destination worksheets. You've already defined the code names for each of the sheets, so the VBA you have is about as simple as you can make it. I still recommend the change to more descriptive variable names to make it clear which data you are copying to the destination worksheets.
With wsTTLUSCYTD
    .Range(&quot;A1&quot;).Value2 = reportTitle
    .Range(&quot;A5:H11&quot;).Value2 = reportDescription
End With

With wsCintiCYTD
    .Range(&quot;A1&quot;).Value2 = regionNumber
    .Range(&quot;A5:H11&quot;).Value2 = regionManager
End With