Tag: 范围

运行时错误1004'无法获取数据透视表类的PivotFields属性'

我真的不知道这个错误意味着什么…我试图使用代码来select一个数据透视表中的子头之一下的所有行。 我得到运行时错误1004“无法获得透视表类的PivotFields属性”。 这里是代码: Sub ttest() Dim pt As PivotTable Set pt = Sheets("Report").PivotTables("PivotTable1") pt.PivotFields("Row Labels").PivotItems("CL").DataRange.Select End Sub

在C#中,如何使用Excel Interop来加速编写多个单元格值

我有一个硬件,我得到30个数据点。 每个这些点都logging在电子表格中的几个不同的地方,然后另一个程序接pipe了Excel电子表格。 要求所有这些值在其他程序接pipe之前写入电子表格。 如果我单独写入每个单元,写入大约需要50ms,大约需要1.25秒才能完成数据采集。 如果我可以一次把所有的值写入电子表格,我觉得这将大大加快所有这些单元格的写作。 我看到的问题是,范围工作得非常好,因为我的数据不是连续的更新连续的单元格。 从本质上讲,这将是我想写的一个例子: A1 = 1 B23 = a F8 = 2012/12/25 D53 = 4.1235 B2 = 5 我已经尝试创build“A1,B23,F8,D53,B2”的范围,然后使用值数组设置值。 我尝试了3个不同的数组:object [5],object [1,5]和object [5,1]。 这些都将范围内的指定单元格的值设置为我在所有情况下创build的数组的第一个索引。 有没有办法更新这些30个单元格的数据,而不是一次一个遍历单元格? 谢谢,汤姆

将整个范围转换为小写,而不通过单元格间接循环

我正在寻找VBA代码,它将整个单元格范围并将其转换为小写字母。 我发现以下内容: [A1:A20] = [index(lower(A1:A20),)] 这对一个固定的范围工作正常(不完全理解语法,但发现以下post:) 详细介绍上面的代码 我的问题是这样的: 我希望能够dynamic设置范围,因为我正在处理更改范围大小。 但是,以下不起作用,我似乎无法在VBA中使用INDIRECT()。 Range("A1:A" & n) = [index(lower(Range("A1:A" & n)),)] 有没有办法做到这一点? 我真的想避免使用for循环,因为我怀疑这应该是更快..

在VBA中从一个范围创build一个数组

我有一个看似基本的问题,但找不到解决它的任何资源。 简而言之,我只是想将单元格范围内的所有内容(全部列)加载到数组中。 我可以通过这个方法来完成这个任务 DirArray = Array(Range("A1"), Range("A2")) 但出于某种原因,我不能创build这样的数组: DirArray = Array(Range("A1:A2")) 我真正的范围更长(可能会有所不同),所以我不想单独列举单元格这种方式。 任何人都可以告诉我如何正确加载到一个arrays的整个范围? 用后面的代码: MsgBox UBound(DirArray, 1) 和 MsgBox UBound(DirArray) 返回0,而前者返回1。

是个 。 在.Cells中定义时需要。

人们普遍认为这不是“最佳做法”。 dim rng as range with thisworkbook '<~~ possibly set an external workbook with .worksheets("sheet1") set rng = .range(cells(2, 1), cells(rows.count, 1).end(xlup)) end with end with 定义Range对象范围的两个Range.Cell属性将默认为ActiveSheet属性 。 如果这不是Sheet1(定义为With … End With语句中的.Parent ),则分配将失败, Run-tim error '1004': Application-defined or object-defined error 解决scheme:使用.Cells不是Cells 。 案件结案。 但… 是的. 当Range.Cells属性inheritanceWith … End With语句中定义的.Parent工作表属性时,在此Range对象定义中是否必要? 这怎么可能, dim rng as range with […]

从数组数据创build图表,而不是范围

是否有可能创build一个图表(例如双Y轴线图)而不是从范围,但从arrays数据? 如果是这样,怎么样?

将工作簿声明为全局variables

我开始编写一个代码,可以适用于多个工作簿,但始终使用相同的参考工作簿。 代码将有许多潜艇,因为我试图避免变暗参数工作簿中的每个子我想声明他们全球。 首先我有: Global Locations As Excel.Workbook Set Locations = Workbooks.Open("M:\My Documents\MSC Thesis\Italy\Merged\locXws.xlsx") 哪给了我: “编译错误:外部程序无效” 一些谷歌search后,我发现了以下代码的地方: Public Const Locations As Excel.Workbook = "Workbooks.Open("M:\My Documents\MSC Thesis\Italy\Merged\locXws.xlsx")" 哪给了我: “编译错误:预期:types名称” 编辑: 使用: Public Const Locations As Excel.Workbook = "Workbooks.Open('M:\My Documents\MSC Thesis\Italy\Merged\locXws.xlsx')" (Workbooks.Open语句内的单引号)导致与使用双引号相同的错误。 谁知道我在做什么错? EDIT2: 我也尝试在“ThisWorkbook”中声明variables,使用下面的答案 : Private Sub Workbook_Open() Dim Locations As Excel.Workbook Dim MergeBook As Excel.Workbook Dim […]

如何计算Excel中两个数字之间的单元格?

我需要一个公式来计算范围在10到10.000之间的单元格的数量: 我有: =COUNTIF(B2:B292,>10 AND <10.000) 但是,如何将比较运算符放在没有公式错误的地方呢?

如何在Excel中获取范围的大小

使用VBA,是否有可能以像素或单位来获得给定范围的大小? (我不关心哪个单位,因为我只用它来与其他测量相关的单位)。 谢谢。

Excel VBA:范围到string数组在1步

我知道你可以很容易地获取一系列的单元格,并将它们放入一个Variant数组中,但是我想使用一个string数组(因为它是单维的,并且占用的内存比Variant数组less)。 有没有办法自动将范围转换为string数组? 现在,我正在使用一个函数,它将采用范围并将值保存在variables数组中,然后将variables数组转换为string数组。 它工作得很好,但我正在寻找一种方式直接从范围到string数组。 任何帮助将不胜感激。 Function RangeToArray(ByVal my_range As Range) As String() Dim vArray As Variant Dim sArray() As String Dim i As Long vArray = my_range.Value ReDim sArray(1 To UBound(vArray)) For i = 1 To UBound(vArray) sArray(i) = vArray(i, 1) Next RangeToArray = sArray() End Function 更新:这看起来像没有办法跳过将数据转换为一维string数组之前,将数据放入一个variables数组的步骤。 如果是真的,那真可惜(即使不需要太多的努力,我也喜欢超优化,所以我希望有一种方法可以跳过这一步)。 如果没有解决办法,我会在几天内解决这个问题。 感谢有用的评论,伙计! 更新2:回答西蒙谁付出了很大的努力(所有其他人也一样),并指出从一个镜头范围到string排列确实是不可能的。 感谢大家。