Tag: 范围

select单元格范围时出错

我想select下面描述的范围来格式化它。 但是,它说有一个错误的参数数量或无效的属性分配。 With ws3.Range("C8", "C12", "L14:P16", "L20:P20", "L22:Q23", "L" & lastrow5 & ":" & "Q" & lastrow5)

Cells属性 – 运行时错误91

所以,我试图创build子过程,其中一个参数是列名称。 列名然后转换为列号。 Dim ColNum As Integer: ColNum = Range(ColumnNM & 1).Column 但是当我尝试使用范围内的列号,与单元格属性我得到91运行时错误。 这里的大部分解决scheme都是为了不正确地设置范围。 运行时错误91 这里给我这个错误: Dim rngTA As Range: Set rngTA = wsTA.Range(Cells(24, ColNum)) 和这(试验,不知道这是否正确的方式来设置范围与string地址) Dim addr As String: addr = Cells(24, ColNum).Address(RowAbsolute:=False, ColumnAbsolute:=False) Dim rngTA As Range: Set rngTA = wsTA.Range(addr) 我卡在那里。 谢谢。

VBA Excel:将范围值分配到一个新的范围

我无法从当前工作簿中将工作簿范围的值分配给范围。 当我使用Range(“A1:C1”)分配我的范围时,此代码工作正常,但是当我的范围使用Range(Cells(1,1),Cells(1,3))定义时,函数失败: Sub CopyRange() Dim inputExcel As Excel.Application, BookA As Workbook Path_A = ThisWorkbook.Path & "\Book_A.xlsx" Set inputExcel = New Excel.Application Set BookA = inputExcel.Workbooks.Open(Path_A, ReadOnly:=True) 'THIS WORKS: ThisWorkbook.Sheets(1).Range("A1:C1").Value = _ BookA.Sheets(1).Range("A1:C1").Value 'THIS DOESN'T WORK: ThisWorkbook.Sheets(1).Range(Cells(1, 1), Cells(1, 3)).Value = _ BookA.Sheets(1).Range(Cells(1, 1), Cells(1, 3)).Value End Sub 我知道这一定是一个简单的语法问题,但我一直无法弄清楚。 我怎样才能使用“单元格”的范围分配工作?

通过Access VBA格式化Excel – 范围应用程序/对象定义的错误

我的问题发生在以下行上: Worksheets(1).Range("A:A").Select 背景:我有一个加载文本文件的过程,将其分割成许多其他表格,然后将这些片段作为新表格导出,将它们导出为ex​​cel,并进行一些格式化。 我使用“For Each”循环来通过我的访问表。 当某些表被识别时,一些其他代码运行创build新的表(代码未显示)。 一旦创build了一个新表,就会被导出为ex​​cel并进行格式化。 这是发生错误的地方。 第一个循环工作正常,在第二个循环中,代码在select列范围时发生错误。 我已经做了一些search这个错误,看起来像原因往往是如何引用工作表。 我有一些使用这种过程的工具,所以最终理解原因是很好的。 码: Dim xl As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet1 As Excel.Worksheet outputFileName = "C:\Users\UserID\Desktop\Reports\" & tblData & ".xls" DoCmd.TransferSpreadsheet acExport, acSpreadsheetTypeExcel9, "tbl_Report", outputFileName, True Set xl = New Excel.Application Set xlBook = xl.Workbooks.Open(outputFileName) xl.Visible = True Set xlSheet1 = xlBook.Worksheets(1) With xlSheet1 […]

VBAsearch值并更改Row + 2的格式

有人能给我伸出援助之手吗? 我想要实现的是在列中search一个文本string,如果它符合我的标准,请更改dynamic范围的格式。 我很难弄清楚如何使这个范围dynamic。 它始终是匹配string+ 2的行。 这是迄今为止我所得到的: Sub FormatPercentages() Dim RowToTest As Long For RowToTest = Cells(Rows.count, 27).End(xlUp).Row To 2 Step -1 With Cells(RowToTest, 27) If .Value Like "*Efficiency*" _ Then _ Range("AD129:AS131").NumberFormat = "0%" End With Next RowToTest End Sub 我需要范围部分的帮助: 范围(“AD129:AS131”)。NumberFormat =“0%”我认为这应该是这样的东西,虽然我知道它写得不好( AD&“N”:&AD.xlToRight &“N”+2 )。 其中N是与string效率相匹配的行号。 谢谢你

如何使用C#填充I单元格A1:A5的颜色?

我有以下代码: Excel.Range chartRange; chartRange = xlWorkSheet.get_Range("A3", "R3"); 我想用一种颜色填充这个单元格的范围。 我已经尝试过: System.Drawing.Color = "yellow" 但它抛出了一个exception,需要一个对象引用。 我怎样才能修复我的代码来填充这些单元格的颜色?

使用oledb和C#在Excel表格中创build一个命名范围

我正在尝试使用c#和oledb在Excel表格中创build一个命名区域。 我不想使用这个COM对象interops。 尽pipe从命名范围读取stream行,但我还没有find任何执行此任务的在线示例。 背景是,我将有这个Excel工作簿中的各种工作表中的下拉列表中使用的外部数据(来自Sql数据库表的Xml片段),直到Excel文件被select并打开后,其值才会知道由程序。 部分工作簿的预处理是创build并加载这些下拉列表。 创build将在隐藏工作表创build命名区域,然后创build其他工作表上的下拉列表,引用命名的范围(我不知道我可以做到这一点,而不诉诸于COM互操作,但我尝试我必须)。

Excel VBA:命名范围+string值作为validation列表?

好吧,基本上我想要做的是为特定的单元格设置数据validation列表。 这个列表应该包含我指定的一定范围的单元格PLUS添加一个string值。 我有一个对话框,询问用户名称,然后我需要列表显示包含“其他:”&名称添加到它的单元格的设置范围。 name = "Test" With Worksheets("Tijdsregistratie").Cells(aangepasteRij, 4).Validation .Delete .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop, Operator:= _ xlBetween, Formula1:="=nameRange, name" .IgnoreBlank = True .InCellDropdown = True .InputTitle = "" .ErrorTitle = "" .InputMessage = "" .ErrorMessage = "" .ShowInput = True .ShowError = True End With 就像上面的代码(显然公式不起作用)。 有没有办法使用一个特定的公式来做到这一点,或者我将不得不find另一种方法来完成这个?

Excel Interop Range.Value = arr 当arr 包含date小于1900-01-01时与0x800A03EC崩溃

我理解的基本问题是,Excel表示1900-01-01为1的值。但是,在Excel中可以手动input1900以前的值。 // this converts the DataTable to an Object[,] DataTable table = … Object[,] arr = DataTableUtils.toObjectArray(table, false); Range r00 = r0.get_Resize(arr.GetLength(0), arr.GetLength(1)); r00.Value = arr; // <– this will crash if … 如果arr [,]在1899-12-31之前包含DateTime对象,则会导致0x800A03ECexception。 奇怪的是,1899-12-31很好,Excel增加了一天的价值。 最初我用1900-01-01replace了1900年前的date,但在输出文件中,它们是1900-01-02! 目前,我正在使用解决方法来replace错误的DateTime值。 但是,如果有人有更好的解决scheme,请让我知道。

从Excel范围填充Outlook中的列表框 – 获取单元格的超链接

我正在尝试使用Excel范围中的数据在Outlook VBA中填充多列列表框。 我已经设法使用代码到目前为止工作: Private Sub CommandButton1_Click() 'Late binding. No reference to Excel Object required. Dim xlApp As Object Dim xlWB As Object Dim xlWS As Object Dim cRows As Long Dim I As Long Set xlApp = CreateObject("Excel.Application") 'Open the spreadsheet to get data Set xlWB = xlApp.Workbooks.Open("Query Log.xlsx") Set xlWS = xlWB.Worksheets(1) cRows = […]