我试图分配一些值给VBA中的数组,问题是,当我尝试打印每个数组的值时,我得到一个比预期更多的值,因为第一个值分配给头。 我有这样的价值观: A3 – 类别 (标题) A4 – 全球 A5 – KAM A6 – 推销员 A7 – 外部 A8 – pipe理员 这是我的代码: Function xyz() Dim Category as Variant Set Category = Sheets("Reports").Range("A4:A8") End Function 我得到的价值是: MsgBox Category(0) =Category MsgBox Category(1) =Global MsgBox Category(2) =KAM MsgBox Category(3) =Salesman MsgBox Category(4) =External MsgBox Category(5) =Admin 据我所知,一个数组的选项基础默认设置为'0',为什么类(0)值考虑“A3”单元而不是“A4”单元?
我有一个用户窗体编辑我的工作簿中的某些表的值。 在用户表单代码中我有这样的: Public vTable As Range Private Sub UserForm_Initialize() Set vTable = Sheet1.Range("Table1") vTable.Cells(1, 1).Value = "New Value" End Sub 问题是,当vTablevariables中的值发生更改时,工作表上单元格中的值也会发生更改。 我想阻止这种事情发生; 在用户单击用户窗体上的“完成”button之前,没有任何更改应该应用于工作表。
我正在尝试使用(dynamic)命名范围作为我的图表的来源。 我希望能够使用一个命名的范围作为图表的来源,但到目前为止,这是行不通的。 例如:我的数据范围从A1开始,一次向右扩展一列。 所以现在的范围是A1:E38。 明天是A1:F38等 所以我用这个公式创build了一个命名的范围,并试图用它作为图表的来源: =OFFSET('ontwikkeling punten'!$A$1;0;0;COUNTA('ontwikkeling punten'!$A:$A);COUNTA('ontwikkeling punten'!$2:$2)+1) 但是,excel不接受这个数据源为我的图表。 当我select当前范围时,说A1:E38,并从中创build一个图表,根本没有问题。 为什么Excel不接受我的dynamic命名范围作为我的图表来源? 否则,我将不得不创build38个单独的数据范围。
我有一个代码,如果它们是灰色,将单元格变成白色,并将该范围存储在数组中。 然后我检查数组中的每个范围,看看它是否为空,模式是固体(白色)。 如果是这样,那么我把它变成一个较浅的灰色阴影。 我的代码来testing这是目前 Dim Prev() As Range 'I also tried Prev() As Variant and have the same problem Dim PrevCount As Long Dim Counter As Long Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Interior.Pattern = xlGray50 Then Target.Interior.Pattern = xlSolid PrevCount = PrevCount + 1 ReDim Preserve Prev(1 To PrevCount) Set Prev(PrevCount) = Target […]
在VBA中,我试图创build一个范围引用数组。 这是我目前的尝试: Dim columnName() As String Dim colIndex() As Long Dim colRange() As Range colCount = 10 ReDim columnName(colCount) ReDim colIndex(colCount) ReDim colRange(1 To colCount) columnName(ID) = "ID" 'etc For i = 1 To UBound(columnName) colIndex(i) = WS.Range("A1", "ZZ1").Find(columnName(i), LookIn:=xlValues, MatchCase:=False).column colRange(i) = WS.Range(Cells(2, colIndex(i)), Cells(LastRowIndex, colIndex(i))) If 1 = 1 Then 'debugging Application.ScreenUpdating = […]
我正在寻找从不同的工作簿tableArray值,并返回值和整个单元格的内容。 这个答案几乎是我要找的。 如果我修改这个链接copyFormatting例程( Private Sub copyFormatting(destCell As Range, srcCell As Range) )复制单元格并粘贴全部,而不是格式化单元格字体: srcCell.Copy destCell.PasteSpecial xlPasteAll 然后,代码按原样返回值在同一工作簿中。 任何想法如何我可以得到设置的范围线 – fromCell.Parent.Range(destAddr) 在另一个工作簿工作表中引用单元格地址时工作?
我正在做一个Excel的WPF项目。 在Excel表格中,我select了一个范围,如下所示: Range c1 = newSheet.Cells[3, 2]; Range c2 = newSheet.Cells[8, 10]; Range rng = (Range)newSheet.get_Range(c1, c2); 我需要删除,可以说,从这个范围内的第5行。 如何根据excel表中的索引从一个范围中排除一行?
嗨,我是非常新的VBBA,第一天使用它,即时通讯试图获得下面的代码来读取列表,并删除所有的字母和空格,所以我只剩下在右边的列中的数字。 这段代码是我在网上find的东西,我试图为自己的目的进行编辑,任何帮助将大大地被赞成。 我仍然疯狂地用Googlesearch,看看我能find什么。 我得到错误在线开始“对于每个细胞” Sub Remove_Alphabets_SpecialChar_RetainDecimalNumber_Test() Dim RegX As Object Dim Rng As Range Set RegX = CreateObject("vbscript.regexp") With RegX .Global = True .Pattern = "[^-0-9-.]" End With Range(Range("d4").End(xlDown)).Select For Each cell In Range(Selected) Rng.Offset(, 1) = RegX.Replace(Rng, "") Next cell End Sub
我正在使用近200个命名范围(每列是NR)的工作表。 我现在想让他们dynamic而不是像他们定义他们 PersonID = =RawData!$A$2:$A$100 我想这样做 PersonID = OFFSET(RawData!$A$2,0,0,COUNTA(RawData!$A:$A),1) 但我不想手动做这个! 有没有办法做到这一点在Excel以外的texteditor或有办法做到这一点编程? 我已经有了第一种方式完成的200个NR,但手动经过它们的想法都改变了我。
我在Excel 2013中写了一个vbamacros。我有下面的代码来读取一个variables的范围, Dim MyBuffer As Variant With MyWorkSheet MyBuffer = .Range(.Cells(1, NAME_COL), .Cells(10, AGE_COL)).Value End With 'Here NAME_COL = 5, AGE_COL = 9 现在MyBuffer是一个二维数组,索引范围从(1,1)到(10,5)。 我想知道是否有办法维护指标的第二部分相同的列号。 即从(1,5)到(10,9),这样我可以使用常量NAME_COL,AGE_COL等访问variables。 这主要是为了可读性(以便其他程序员可以很容易地看到我正在访问哪个条目)和可维护性(在表单上添加/删除/交换列的情况)。 感谢任何帮助,找出相同的。 请注意,我不考虑进一步复制到另一个具有修改索引的数组,或具有另一组Variant位置(NAME_POS,AGE_POS等)的常量。