Question: ```
Sub insertHeader()

    Dim rng1 As Range
    Dim ws As Worksheet
    Dim c1 As Range
    Dim rng2 As Range

    Set ws = Worksheets("Sheet1")
    Set rng1 = ws.Range("A2:AV2")

    For Each c1 In rng1
        If c1.Value <> "" Then
            c1.Value = c1.Offset(-1) & "_" & c1.Value
        End If
    Next

End Sub

```

I am trying to combine the Header with Subheaders

See below pix- 

Thanks in advance!!![FIRST](https://i.stack.imgur.com/Rr14J.png)

![Result](https://i.stack.imgur.com/DlMRm.png)

Answer: 
namespace is the currently relevant feature. But isn't possible to get a friend namespace, no more that it is possible to template a namespace or pass a namespace as a template parameters, two common cases where struct with only static members are commonly used as a work around. So there is a good precedent of using a struct. There is at least another reason to use a struct of static members instead of a namespace: a namespace is open to addition while a struct is closed. And that aspect alone could be also a justification of using a struct instead of a namespace for friend.
You typically implement such functions as free-standing functions which are members of the target class. You can implement them "literally" inside the class but still they are free-standing. So you don't need to repeat yourself when listing all those functions as friends + implement them:

```
class MyClass {
    int x;

    friend void doSomething(MyClass & obj) {
        obj.x++;
    }
    friend bool doSomethingDifferent(MyClass & a, MyClass & b) {
        return a.x < b.x;
    }
};

```