【问题标题】:How to Format Date Column in Excel VBA如何在 Excel VBA 中格式化日期列
【发布时间】:2018-02-26 05:27:46
【问题描述】:

我有一个 Excel 工作表。我将使用 vba 宏从 Sql 数据填充记录集。它工作正常,但我想知道如何将日期列格式化为 (E5:E10) 中的“dd/MM/yyyy” .我试过下面的代码,但日期格式不起作用。请建议如何做到这一点....

Private Sub CmdShowDetails_Click()

Dim ConKha As New ADODB.Connection
Dim TmpRst As New ADODB.Recordset
ConKha.Open "Provider=SQLOLEDB.1;Password=Pass@123;Persist Security Info=True;User ID=sa;Initial Catalog=GloveERP;Data Source=Arindsql"
ConKha.CommandTimeout = 600
SqlStr = "Select 'Outward' SupplyType,'Job Work' SubType,'Others' DocType,A.GatePassNo DocNo,Convert(Char(10),A.GatePassDate,103) DocDate,'K H EXPORTS INDIA PRIVATE LIMITED GLOVE DIVISION' From_OtherPartyName,'33AAACR1714R1ZA' From_GSTIN,'142/1 Trunk Road' From_Address1 ,'Perumugai' From_Address2,'Perumugai' From_Place,'632009' From_PinCode,'TAMIL NADU' From_State,"
SqlStr = SqlStr & "Replace(Replace(Replace(Replace(Replace(REPLACE(REPLACE( REPLACE( REPLACE( B.CompanyName, '!', ' ' ), '#', ' ' ), '$', ' ' ), '&', ' '), '.', ' '),',',' '),';',' '),':',' '),'*',' ') "
SqlStr = SqlStr & " To_OtherPartyName,B.GSTNo TO_GST,B.Address1 + ' ' + B.Address2 To_Address1 ,B.Address3 + ' ' +  B.Address4 To_Address2,'' To_Place,'632009' To_PinCode,'Tamil Nadu' To_State,C.ItemDescriptions Product,C.Purpose [Description],C.HSNCode,D.UoMName Unit,C.Quantity, (C.Quantity * C.Rate) + ((C.Quantity * C.Rate) * (C.GSTPercentage/100))  AssesableValue,'9+9+0+0' TaxRate, 0 CGSTAmount, 0 SGSTAmount,0 IGSTAmount,0 CESSAmount,'Road' TransMode,10 Distance,"
SqlStr = SqlStr & " '' TransName,'' TransId,'' TransDocNo,Convert(Char(10),A.GatePassDate,103) TransDate,A.VehicleNo,'' ErrorList from Material_Trn_GatePassHeader A Join Common_Ref_Company B On (B.CompanyId = A.SupplierId) Join Material_Trn_GatePassDetails C On (C.GatePassHeaderId = A.GatePassHeaderId) Join Common_Ref_UoM D On (D.UoMID = C.UOMId) Where (A.GatePassNo Between '" & TxtFromGPNo.Text & "' And '" & TxtToGPNo.Text & "')"
TmpRst.Open SqlStr, ConKha, adOpenForwardOnly

Worksheets("eWayBill").Range("A4").CopyFromRecordset TmpRst

Worksheets("eWayBill").Range("E4:E10").NumberFormat = "dd/mm/yyyy"

TmpRst.Close
ConKha.Close

结束子

【问题讨论】:

  • 在填充数据之前尝试应用格式。
  • .number 格式之前的日期值是什么样的?它们在单元格中是左对齐还是右对齐?您的计算机通常是 DMY 还是 MDY?

标签: excel vba


【解决方案1】:

斜线以特殊方式解释。

试试这个:

.NumberFormat = "dd\/mm\/yyyy"

强制显示斜线。

【讨论】:

  • 感谢您的快速支持,我已尝试将上面的代码格式化,但它显示错误消息“无法为范围类设置 NumberFormat 属性”
  • 您的工作表上有保护措施吗?这个错误是只出现在新代码还是你原来的代码?
  • 这是我的原始代码 Worksheets("eWayBill").Range("E4:E10").NumberFormat = "dd\/mm\/yyyy"""
  • 所以我的问题是:您的工作表是否受到保护以防更改?右键单击工作簿左下角的eWayBill 选项卡,检查是否有条目Remove protection(或类似)
  • 否则你应该用谷歌搜索你的错误信息。有几个命中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-17
  • 2015-08-31
  • 2022-07-21
  • 2023-03-20
  • 2021-08-09
  • 2012-07-02
相关资源
最近更新 更多