Tag: vba

worksheetfunction.countifs在计算非空白单元格时在VBA代码中发生错误

我有 Dim tape, out As Worksheet Set tape = ThisWorkbook.Sheets("Agg") Set out = ThisWorkbook.Sheets("output") out.Cells(1, 2).Value = WorksheetFunction.CountIfs(tape.Range("IG1:IG10000"), "<>" & "", "<>" & " ", "<>" & " ") 所以我一般说“如果不是空白,不是单个空间,而不是两个空格”。 我想要做的是计算非空白值,同时考虑到可能在单元格中有空格。 但是这最后一行不断给我这个错误:“无法获得工作表函数类的Countifs属性”。 我怎样才能使它工作? 谢谢!

Excelmacros:(1)下面的代码不起作用(2)我如何使macros运行实时在任何工作表上

让我解释一下我正在尝试使用下面的macros来解决的问题。 有一个模板表,我将在那里填写D列。如果D42(根据前面的input计算)的值是<D43(固定值),我希望列EP保持隐藏状态。 如果D42> D43,我想列EP出现(这将需要填补)。 我的下面的代码不起作用 – 似乎Number_1和Number_2都被分配为0。 我试图解决的第二个问题是,我将该模板表复制到另一个表(我们称之为XYZ),并在那里运行 – 我认为使用ActiveSheet将解决它,但似乎并没有工作。 理想情况下,如果macros可以实时运行(因此,没有button来启用macros)我不希望如何解决这个问题 任何帮助是极大的赞赏! Sheets(ActiveSheet.Name).Select Columns("E:P").EntireColumn.Hidden = True Dim Number_1 As Integer Dim Number_2 As Integer Number_1 = ActiveSheet.Range("D42").Value Number_2 = ActiveSheet.Range("D43").Value If Number_1 – Number_2 > 0 Then Columns("E:P").EntireColumn.Hidden = False Else Columns("E:P").EntireColumn.Hidden = True End If

Excel VBAmacros如何创build一个空的可变对象

正如问题所说,如何创build一个空的范围variables对象: 使用下面的代码进行testing,它不能从不同的来源(工作簿/工作表)插入新的单元格/范围。 Public Sub test() Dim Sheet As Worksheet Dim t As Range Set Sheet = ActiveWorkbook.Sheets(1) Sheet.Activate Set t = Sheet.Range("A1:A1") t.Delete t.Insert End Sub 上面的代码给了我所需的对象exception。 我们如何创build一个空的Range,并用来自另一个源的单元格填充它,或者至less一个自定义的单元格被插入到Range中? 类似于一个数组对象是如何能够或在一个GridView中,我们可以创build一个行/列/单元格对象实例化它,并给它的价值,并将其添加到gridview,就像你在asp.net / c#winforms中如何做呢?

合并单元格值在选定范围内

我试图创build一个简单的macros(因为我有一些重复的工作),将合并(但不合并在连接两个单元的Excel方式,但将其余的单元格的值移到第一个)值。 我以为我可以通过select循环,并与第一个符号第二个单元格,然后第三个到第一个等。 所以我有这样的东西: Sub scal() Dim rng As Range Dim cell As Range Set rng = Selection For Each cell In rng 'code here Next cell End Sub 用这种方法我可以把每个单元格搞成一个整体,但是我怎样才能合并(再一次不合并 – 像合并两个单元格一样,而是把一个单元格的价值移动到另一个单元格)?

Excel检测PasteSpecial操作

我正在开发一个评估Excel上用户技能的软件。 因此,用户可以在Excel中做一些操作,正如一系列问题中所提到的,我的工作是使用Excel COM Object编程来validation用户所做的事情。 我能够validation这样的事情; 单元格格式,单元格方向,打印区域,字体types,合并单元格等,但我很努力validation“select性粘贴”操作。 我有一个WorkSheet的Change事件和WorkSheet本身的钩子。 所以我可以捕捉到用户所做的keyStroke以及单元格的实际格式。 但是我无法find一种方式来判断用户是否使用了“仅格式 – 特殊粘贴”。 有没有人可以帮助我呢?

build立一个Excel体积计算器

目前我正在创build一个Excel体积计算器来帮助估算家中的物品体积,问题是我需要工作表执行单独的乘法,存储值,然后将它们总计在最后。 我需要这个表单来多重地排列M3的No col,并且把它们存储在总和中,但是这个表单有大约200个项目,所以我们不需要手工完成每一个,就像= sum(A1 * B1 + A2 * B2 + A3 * B3 etc等等)我想知道是否有一个更简单的方法? 例

将行复制到另一个电子表格上的下一个空闲行上进行更改

首先,对于macros和VBA,我是一个小菜鸟,所以请原谅我,如果我没有意义。 我有一个Excel电子表格,基本上是一个用户列表,他们的手机号码和一些其他位(目前使用AK列),并按行sorting。 我需要的是复制整行的方式,如果我改变一个单元格。 所以,如果我更改用户名,它将该用户的整个行复制到第二张纸上的下一个空白行。 这样做的目的是保持审计线索,让我们看看谁以前使用过一个号码等等。 我发现这一点: 复制行到Excel中的另一个工作表使用VBA这是按预期工作,但我不能为我的生活得到它,复制单元格到下一个空闲行,或B,不覆盖现有的条目。 这是我正在使用的代码: Private Sub Worksheet_Change(ByVal Target As Range) Dim a As Range, rw As Range For Each a In Selection.Areas For Each rw In a.Rows If rw.Row >= 2 Then rw.EntireRow.Copy Sheet2.Cells(2 + (rw.Row – 2) * 3, 1) End If Next rw Next a End Sub 我真的很感激,如果有人可以帮我定制它。 我在Win7上使用Excel […]

VBA数据validation列表框IF公式

我有一个列(C)在工作表中列出国家使用数据validation选项中的列表框。 我有下一个有国家的专栏(D)。 我可以创build一个状态types的列表,但是我想知道在VBA的Excel前端有没有办法做如下的事情: 列C国家=“美国”,列D列出国家 其中列C国家=“加拿大”,然后列D列表省 我希望这是有道理的。 提前致谢

Excel在表VBA中返回非零值的行和列标题

我有一堆零和值的表。 我想编写一个代码,通过表格中的每个单元格,当一个单元格具有非零值时,macros将列出每个非零单元格的行和列名称。 Kroger Meijer Wholefoods Walmart Food 0 0 0 1 Food, Walmart Electronics 0 1 0 1 Electronics, Meijer; Electronics Walmart Gas 0 0 1 0 Gas, Wholefoods Crafts 0 1 0 0 Crafts, Meijer 在代码方面,除了select所有非零的单元之外,我并不知道如何做到这一点。 Sheets("NA_CM1").Select ActiveSheet.ListObjects("ItI_COMPLETE_NACM1").Range.Select For Each cell In Range("ItI_COMPLETE_NACM1") If cell.Value <> 0 Then If my_range Is Nothing Then Set […]

下标超出范围VBA复制到csv

在写一段代码时,我遇到了“下标超出范围”的信息。 该文件夹的结构如下:D:\ Documents主目录里面它有:xls工作簿与代码一个文件1.csv我需要复制数据文件夹WiP其中包含csv文件与数据 代码目前看起来像这样 Sub MergeData() ' ' Ìàêðîñ1 Ìàêðîñ ' Provide path to workbooks, ' there is a folder with about 100 csv books from which I should collect data into one Dim Filename, Pathname As String Dim wb As Workbook Pathname = ActiveWorkbook.Path & "\WiP\" Filename = Dir(Pathname & "*.csv") ' Open a […]