Excel VBA:使用数字和字母维护数字格式

我正在写一个代码,基本上我需要按照逻辑顺序。 我正在经历所有的路线

Set rep = Sheets("Details") For i = 2 To n If Sheets("Work").Range("A:A").Find(Worksheets("Work_report").Range("E" & i).Value, lookat:=xlWhole) Is Nothing Then Else: o = rep.Range("A" & Rows.Count).End(xlUp).Row + 1 rep.Range("A" & o).Value = "FT_EXCEL" rep.Range("B" & o).Value = Sheets("Start").Range("C5") & "AB" & o - 1 End If Next i 

所以这最后一行(原代码超过50)返回单元格C5(20170331)&AB&o减1(因为我已经开始在2(第一行标题))的值。 所以这是给20170331AB1,但应该给20170331AB01(0之前的零)。 这个序列在10之后就像一个魅力,但在十点之前,我需要加一个零 – 我被困住了。

有任何想法吗? 谢谢。

尝试这个:

 rep.Range("B" & o).Value = Sheets("Start").Range("C5") & "AB" & Format(o - 1, "00") 

使用AutoFilter()方法的operator xlFilterValues值,可以一次完成

 Sub main() Dim rep As Worksheet Dim criteriaArr As Variant With Worksheets("Work_report") '<--| reference "Work_report" sheet criteriaArr = Application.Transpose(.Range("E2", .Cells(.Rows.Count, "E").End(xlUp)).Value) '<--| store its column E cells content from row 2 down to last not empty one End With Set rep = Sheets("Details") With Worksheets("Work") '<--| reference "Work" sheet With .Range("A1", .Cells(.Rows.Count, "A").End(xlUp)) '<--| reference its column A cells from row 1 (header) down to last not empty one .AutoFilter Field:=1, Criteria1:=criteriaArr, Operator:=xlFilterValues '<--| filter it with "Work_report" sheet column E content If Application.WorksheetFunction.Subtotal(103, .Cells) > 1 Then '<--| if any filtered cells other then headers With .Offset(1).Resize(.Rows.Count - 1).SpecialCells(xlCellTypeVisible) '<--| reference filtered cells skipping header rep.Range("A" & Rows.Count).End(xlUp).Offset(1).Resize(.Rows.Count).Value = "FT_EXCEL" '<--| write 'rep' sheet column A corresponding cells content With rep.Range("B" & Rows.Count).End(xlUp).Offset(1).Resize(.Rows.Count) .Formula = "=CONCATENATE(Start!$C$5,""AB"",TEXT(ROW(),""00""))" '<--| '<--| write 'rep' sheet column B corresponding cells content .Value = .Value End With End With End If End With .AutoFilterMode = False End With End Sub