Tag: access vba

圆angular值不正确地插入到Excel中

我有一个Access数据库,其中有一些数据通过vba代码转储到Excel工作簿中。 有些值有一个很长的小数,我想四舍五入到最接近的十分之一。 我不希望价值四舍五入到十分之一,如果它是一个整数(即,我不希望45四舍五入到45.0),所以我使用下面的代码: If Fix(rstTmpRegularAndOvertimeHours!regularhours) = rstTmpRegularAndOvertimeHours!regularhours Then objWS.cells(intRowCount, 6).Value = rstTmpRegularAndOvertimeHours!regularhours Else objWS.cells(intRowCount, 6).Value = Round(rstTmpRegularAndOvertimeHours!regularhours, 1) End If 四舍五入的值显示在单元格中,但input的实际值是未接地的值。 例如,值为4.19999980926513,运行此代码时,单元格中显示值4.2,但如果单击单元格,则会看到实际值仍为4.19999980926513。 当下面这行代码运行时: With objWS.PageSetup .Orientation = 2 .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 1 End With 单元展开显示整个值,再次显示4.19999980926513。 我在其他地方使用类似的代码,并获得插入到电子表格中正确的四舍五入的值。 有任何想法吗?

命令在保存后显示Excel

这是我用来制作电子表格并保存的vba命令: DoCmd.TransferSpreadsheet acExport,“query_alldata1”,“C:\ All_Data_2014.xlsx”,True 我也希望它在屏幕上自动打开或显示。 我将不胜感激任何指导。 这就是我的子程序的样子: Private Sub btnAlldatagen_Click() On Error GoTo Err_btnAlldatagen_Click Dim stDocName As String stDocName = "query_alldata1" DoCmd.TransferSpreadsheet acExport, , "query_alldata1", "C:\All_Data_2014.xlsx", True 'Workbooks.Open "C:\All_Data_2014.xls" MsgBox ("Preparing all Data Report") Exit_btnAlldatagen_Click: Exit Sub Err_btnAlldatagen_Click: MsgBox Err.Description Resume Exit_btnAlldatagen_Click End Sub 我正在使用Workbooks.open命令但它不打开工作表。

使用MS Access将注释添加到MS Excel范围对象

我正在尝试编写访问MS Excel工作表的MS Access模块​​中的子例程,并将注释添加到指定的范围。 我正在使用后期绑定,这样我的低信心用户不需要添加引用。 尝试向范围对象添加注释时,会引发以下错误: 运行时错误“1004”:应用程序定义或对象定义的错误。 使用下面的示例代码,假定打开的工作表具有带注释“Hello”的单元格A1,带有注释“World”的单元格A2,并且单元格A3没有注释。 Sub export(strFilePath As String) Dim XL As Object Dim WB as Object Dim WS as Object Set XL = CreateObject("Excel.Application") XL.Workbooks.Open strFilePath Set WB = XL.Workbooks(1) Set WS = WB.Sheets("ExportSheet") Debug.Print WS.Comments.Count 'returns accurate number of comments on sheet (2) Debug.Print WS.Range("a1").Comment.Text 'returns comment of cell A1 (Hello) […]

vbamacros读取带有分隔和非分隔空格的string

我有一个.txt文件,具有如下表信息 Recipient PanelSize NumberOfAlerts Michigan Regional 42454 15756 Wellcare 21234 8492 Michigan Patient Care 6789 1056 我正在使用VBAmacros读取.txt文件并input到Excel工作表中。 我主要与收件人有问题。 收件人名称包含空格,所以使用 vDatavalues = Split(sLine, " ") 分离收件人 Michigan| |Patient| |Care| 我不想要。 我怎样才能分割我正在阅读的行格式化成3列正确阅读从表中逐行? 编辑:这是我想要读取和格式TEST.txt的.txt文件的示例

在用户窗体中查找键值的行和列

我有一个用户表单用户键入他们的ID号码到一个表。 但我怎么能捕获表中的行和列的ID号,并删除它们。 Set f = Worksheets("data").Range("4:4").Find(What:=TextBox2.Value) If Worksheets("data").Cells(f.Row, f.Column).Value = TextBox2.Value Then Worksheets("data").TextBox2.Value.Delete End If 非常感谢你

从Access VBAsearchExcel列 – types不匹配

我的问题发生在下面一行(错误是types不匹配): RowNo = xlSheet1.Cells.Find(What:="SummaryType", After:=ActiveCell, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False, SearchFormat:=False).Row 背景:我正在构build一个数据库,它载入一个文本文件,将其分割成多个不同的部分,合并一些部分以创build新表格,然后将新表格导出为ex​​cel并进行一些格式化。 我使用“For Each”循环来查看我的访问表。 当某些表被识别时,一些其他代码运行创build新的表(代码未显示)。 一旦创build了一个新表,就会被导出为ex​​cel并进行格式化。 这是发生错误的地方。 第一个循环工作正常,在第二个循环中,当试图在列A中查找包含“SummaryType”的行时,代码出错。错误是运行时错误13 – types不匹配。 码: Dim outputFileName As String Dim xl As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet1 As Excel.Worksheet Dim RptMnth As String Dim RptYear As Long Dim RptName As String outputFileName = "C:\Users\UserID\Desktop\Reports\" & RptName & […]

在Access VBA中将一个子例程应用于一系列date

我在Access VBA中编写了以下子例程: Sub SampleReadCurve() Dim rs As Recordset Dim iRow As Long, iField As Long Dim strSQL As String Dim CurveID As Long Dim MarkRunID As Long Dim ZeroCurveID As String CurveID = 124 MarkRunID = 10167 ZeroCurveID = "'" & CurveID & "-" & MarkRunID & "'" strSQL = "SELECT * FROM VolatilityOutput WHERE […]

我怎样才能从Access数据库读取多列?

我已经分配了任务来计算来自Access的一些值并将它们存储到Excel中。 我的代码工作,如果我使用单列数据库。 我的代码如下所示: With Recordset Source = "SELECT tbl_cog.[Latitude] FROM tbl_cog WHERE Company='Bandung Food Truck Festival Members'" .Open Source:=Source, ActiveConnection:=Connection For Col = 0 To Recordset.Fields.Count – 1 TextBox1.Value = Recordset.Fields(Col).Value Next End With 但是当我想要读取多个列时,我的代码只读取一列。 我的代码如下所示: With Recordset Source = "SELECT tbl_cog.[Latitude], tbl_cog.[Longitude] FROM tbl_cog WHERE Company='Bandung Food Truck Festival Members'" .Open Source:=Source, ActiveConnection:=Connection For […]

将Access工作簿传递到Access VBA时出现错误424

在Access中使用VBA,我试图将Excel工作簿传递给另一个函数。 我使用以下(剪切)创build工作簿 Dim Wbk As Object Dim sht As Object Dim xl As Object Set xl = CreateObject("Excel.Application") Set Wbk = xl.Workbooks.Open(OutputFileName) Set sht = xl.Worksheets("qryTemp") 使用上述我能够操纵Excel实例。 但是,我试图通过实例传递给另一个函数使用 OutputLog (xl) 接着 Function OutputLog(xl As Variant) As String xl.Application.Visible = True End Function …我需要错误424对象

如何检查Access VBA中的Excel时间值?

我正在使用Access VBA处理Excel工作簿(请参阅从Access读取Excel工作簿 ),现在我要检查单元是否包含有效的时间值。 对于date我使用IsDate(),它工作正常。 但与时间值它不(因为没有IsTime()我也使用IsDate()的时间值)。 或者我应该使用IsNumeric因为时间值被存储为双打? 使用“12:00:00”(带空格)IsDate()给出TRUE(!?),但Excel自身不会将其识别为时间值,VBAdebugging程序还将其显示为文本string。 使用“12:00:00”IsDate()给出FALSE,但Excel本身将其识别为时间值,VBAdebugging器将显示值0,5。 任何人? 更新9/12: 感谢@belisarius和@ mwolfe02我发现这是我的情况: /* Valid time value */ IsDate() = False, IsNumeric() = True, TypeName() = Double /* Numeric (no time) value */ IsDate() = False, IsNumeric() = True, TypeName() = Double /* Valid date value */ IsDate() = True, IsNumeric() = False, TypeName() = Date […]