Tag: 范围

使用Excelmacros的范围select

ABC 123455 XXX 99999 123456 XX 100000 123457 XXX 100001 174564 XXXX 100002 184567 100003 194570 100004 204573 100005 214576 100006 224579 100007 100008 我想用<ctrl> + <down arrow>编写一个用于select范围的macros 这个过程应该是这样的 select单元格A1 用<shift> + <ctrl> + <page down>select一个范围 在不取消范围select的情况下对单元格A1进行曝光(使用<ctrl> ) ActiveCell.Offset(0, 2).Select 然后通过<shift> + <ctrl> + <page down>然后<shift> + <up arrow>从C1到C9进行范围select。 在我的示例数据中执行这些步骤之后,在同一行中select了224579和100007,未select100008。 我想要selectA1到A9之间的范围,也是C1到C9,但是我希望macros没有像A1和A9那样定义一个范围,因为范围可能会改变,就像A1在一些改动之后会变成A5一样。 所以,我想让macros适应并相应地获取数字。

在Excel中使用VSTO,是否可以直接将Excel公式应用于Range对象?

假设我的工作表中有单元格A1:A10的Range对象。 这些单元格都包含不同长度的string,我想知道最长的string的长度。 在Excel中,我可以使用像{=MAX(LEN(A1:A10))}这样的数组公式来find这个值。 我想我可以在工作表中设置一些其他单元格来使用这个公式并检索值,但我宁愿不改变工作表。 有什么方法可以直接在代码中应用这个公式(或任何公式)到Range对象并检索结果? 或者,有没有其他简单的方法来find这个值,而不改变工作表的内容,也没有循环范围内的每个单元格?

Excel粘贴特殊和添加操作

当我们想为所有的Excel工作表单元格添加一个数字(例如5)时,可以复制包含值5的单元格,select我们想要的其他单元格的范围(例如10×10范围),右键单击 – 添加操作,然后单击确定。 我想用C#中的Excel Interop DLL将选定范围内的所有单元格添加到5。 这怎么能实现?

如何在不使用数组的情况下访问范围variables的非连续内容

RE-RECLARIFIED:我是一个优秀的VBA新手,所以忍受着我… 我需要访问非连续范围variables中的单个单元格并更改其值。 有没有顺序的方式来循环通过一个非连续的范围variables? 例如: rng = Range("d1:d6, d12") 这个范围有7个单元格,但是我不能在这个范围内循环单元格,因为“单元格”function把第7个单元格看作是d7。 或者我可以以其他方式? 我不能使用FOR EACH,因为我需要使用范围本身以外的其他variables来跳过范围并更改其中的值。 所以这里是我正在做的一个不起作用的例子: ' If I could access a range like an array rng(1) = Application.InputBox(prompt:="Enter customer's name: ", Title:="CUSTOMER NAME", Type:=2) rng(2) = Application.InputBox(prompt:="Enter travel out date: ", Title:="TRAVEL OUT DATE", Type:=1) rng(3) = Application.InputBox(prompt:="Enter travel back date: ", Title:="TRAVEL BACK DATE", Type:=1) rng(4) […]

通过vba将数据复制到Excel 2007中的范围名称

如果我用10个值填充vba中的一个对象,并将其粘贴到已定义为200行的范围内,这10个值是否会在预定义的范围内被一遍又一遍地复制? 注意:填充和粘贴是通过vba代码完成的,范围是在excel中定义的。 这似乎是发生在Excel VBA 2007年,但不是在2010年。需要解决2007年的问题。 将不胜感激您的input.. 谢谢!

特定工作表的范围地址(而不是活动工作表)

我想写一个简单的函数,告诉我列的长度,给列的第一个logging。 因此,我写了类似… Public Function getColumnLen(firstCell As Range) As Long Dim lastRow As Long lastRow = Range(firstCell.Address).End(xlDown).Row getColumnLen = lastRow – firstCell.Row + 1 End Function 现在我有两个工作表在我的项目中,“A”和“B”,我打电话给VBA Dim colLen as Long colLen = getColumnLen(Worksheets("A").Range("A1")) 当我想知道从A1开始的数据的高度。 colLen的结果值取决于工作表“A”处于活动状态还是“B”处于活动状态。 问题是,在getColumnLen函数中, firstCell记得它是“A”表的一部分,但滚动是在活动工作表上完成的。 有没有什么办法可以使这个结果正确,而不pipe活跃的表格,除了在每个调用中激活firstCell ?

使用线性公式中的间接范围

我正在尝试使用LINEST公式和variables起始坐标: '=LINEST((address(a24,3,4,true,"Copy raw data here")):C36,'Copy raw data here'!A3:A36) 在这里(地址(a24,3,4,真,“在这里复制原始数据”))应该生成“在这里复制原始数据”!C3。Excel不喜欢它,我应该如何改变它?

Excel 2010 VBA Formula1引用名称范围*或*单元格位置与variables的选项卡名称

在VBA(Excel 2010)中,我是 dynamic创build一个命名的范围列表 使用该列表在另一列创build下拉select 当创build下拉列表时,(a)使用命名的范围似乎不起作用,(b)如果我不使用命名的范围 – 并且需要通过表格名称和单元格引用来引用,那么我会遇到麻烦因为我的工作表刚刚被重新命名为今天的date。 我知道这很乱,但是到目前为止, ' find the name of the worksheet and replace it with today's date Dim vTabOriginalName As String Dim vTabDateName As String Dim vRangeName As String vRangeName = "StageListChoices" vTabOriginalName = ActiveSheet.Name vTabDateName = Format(Now(), "yyyy-mmm-dd") ActiveSheet.Name = vTabDateName 'create a drop down list for the stage (col […]

Excel计算范围内的值是否符合使用VBA的特定条件

我有两个范围在Excel中,说: x | y ———— 5 | -1 46 | -4 2 | 1 67 | -1 22 | 1 6 | 0 34 | 0 7 | -2 如果第一列中的值小于10(即,对于i<0且x(i)<10 sum(y(i) ,我想计算小于O的第二列的sum(y(i) 。因此,这个情况的总和将是-3。

VBA,如何使公式在Excel中可见

Dim n As Double n = Sh.Range("B10").Value Dim rate As Double rate = (datefin – datedepart) / n Cells(13, n + 3) = datefin For y = n – 1 To x Step -1 Cells(13, y + 3) = datefin – rate datefin = datefin – rate Next y 我有这个简单的for循环,它将值从n (由用户给出)并根据rate (也由用户给出的值计算)后退到Excel中的单元格中。 我得到的输出值是正确的,但我想让我的公式在Excel中可见。 例如,如果我按下单元格D13我希望显示我使用的公式。 我试图用ActiveCell.Formula或ActiveCell.FormulaR1C1函数做到这一点,但由于n并不总是一个特定的数字(因此在一个特定的单元格),我找不到如何执行我想要的。 […]