回历日期格式

Hijri Date Formatting

我有一些从网站下载的数据,其中一列包含回历日期。为了使此列成为正确的日期列,我应用了以下格式:

但问题是它不会被视为日期并与右对齐,除非我输入单元格(通过双击或 F2)然后按 Enter

因为行数大所以我用的方式不实用

我尝试了以下方法:

Sub HijriDateEnforce()
  Dim cel As Range
  Dim selectedRange As Range
  Set selectedRange = Application.Selection
  For Each cel In selectedRange.Cells
    Selection.NumberFormat = "[$-1970000]B2dd/mm/yyyy;@"
    SendKeys "{F2}~"
  Next cel
End Sub

但是由于未知原因,如果行数很大,代码会在一段时间后停止,我必须对剩余的单元格再次运行它

我讨厌建议 .Select 但我之前的建议在您的情况下不起作用。所以试试这个

代码

Sub HijriDateEnforce()
    Dim acell As Range
    Dim selectedRange As Range
    
    Set selectedRange = Application.Selection
    selectedRange.NumberFormat = "[$-1970000]B2dd/mm/yyyy;@"
    
    For Each acell In selectedRange
        acell.Select
        Application.SendKeys "{F2}"
        Application.SendKeys "{ENTER}"
        DoEvents
    Next acell
End Sub

在行动