Не решение, указатель, но хотелось, чтобы это форматирование имело смысл.
Мне пришлось проделать небольшую работу, чтобы заставить работать функцию match
, вы могли бы использовать .find
здесь или что-то подобное. Надеюсь, это поможет вам или вдохновит вас.
Sub test_ct()
Dim r As Excel.Range
Dim r2 As Excel.Range
Dim l As Long
Dim s As Shape
Dim d As Date
d = CDate("01/05/2019")
' Range of my dates at the top
Set r = Sheets("Sheet10").Range("c1:o1")
' The shape i want to move
Set s = Sheets("Sheet10").Shapes("Triangle1")
' Set default position
s.Left = 10
' Get the column of this date, MATCH intended here, but failing on dates.
l = Application.WorksheetFunction.Match(CDbl(CDate("01/05/2019")), r, 0)
' Destination plus 1/2 width, needs fine tuning, to find centre
l = r(1, l).Left
l = l + (r(1, l).Width / 4)
' Move the shape
s.Left = l
End Sub