我的数据提供商在我获取的.XLSX文件中更改了几个内容。我添加了一个新的子程序,根据此应用程序所期望的模型修复数据:
Sub Feb27FixModel()
ActiveSheet.Range("H2").End(xlDown).NumberFormat = "dd-mmm-yyyy" 'change format of Processed Date
Dim colNum As Integer
colNum = ActiveSheet.Rows(1).Find(what:="Legacy code", lookat:=xlWhole).Column
' Done twice to insert 2 new cols
ActiveSheet.Columns(colNum + 1).Insert
ActiveSheet.Columns(colNum + 1).Insert
' New col headings
ActiveSheet.Cells(1, colNum + 1).Value = "Origin Code"
ActiveSheet.Cells(1, colNum + 2).Value = "Jurisdiction Code"
Range("A1").Select
ActiveCell.FormulaR1C1 = "County Name"
Range("B1").Select
ActiveCell.FormulaR1C1 = "State Abbreviation"
ActiveWorkbook.Save
End Sub
除了上面第一行的结果,其它都有效。在活动工作表中,列H有一个标题行“Processed Date”,H2单元格及其以下单元格存储为通用格式,如11/15/2016。我需要将所有日期更改为自定义日期格式dd-mmm-yyyy。下面的语句无法实现这一点:
ActiveSheet.Range("H2").End(xlDown).NumberFormat = "dd-mmm-yyyy"
编辑(2017年3月1日):
感谢@Jeeped回答中的建议,我添加了另一条语句,这是解决问题的代码:
With ActiveSheet
.Range(.Cells(2, "H"), .Cells(.Rows.Count, "H").End(xlUp)).NumberFormat = "dd-mmm-yyyy"
.Range(.Cells(2, "H"), .Cells(.Rows.Count, "H").End(xlUp)).Value = ActiveCell.Text
End With
编辑(2017年3月2日):
昨天我犯了一个错误。在调试时,我可能在工作表中选择了一个好的单元格,在断点处调试ActiveCell.Text“有点有效”。 它的效果是复制文本,“14-Oct-2016”,每个行都有列H(除了第一行)。 这是最少可接受的。
我真正需要的是一条语句,它将获取H列所有行的文本,并将存储的值从显示为10/14/2016更改为14-Oct-2016等。 仅更改格式不足够。 我需要更改存储的值。 我不知道如何做到这一点。