Tag: excel vba

运行时错误“483”“对象不支持此属性或方法”

我试图为特定的工作表有一个自定义sorting表,但我得到运行时错误“483”“对象不支持此属性或方法”。 我将工作表名称和自定义列表顺序作为来自用户的stringinput。 Option Explicit Sub SortRiskArea() Dim wk As Worksheet Dim Tb, Rb Dim shtName As String shtName = InputBox(Prompt:="Enter the Worksheet Name that you want to sort." & vbNewLine & " Ex: Risk Register ", Title:="Hello", Default:="Risk Register") shtName = Trim(shtName) Dim strName As String strName = InputBox(Prompt:="Enter the Sort Order for Risk Area" […]

将多行转换为列

我遇到了这个任务,我被困在一个很大的时间。 我试过了一个数据透视表,但没有给我想要的结果。 唯一可行的是手动转置,但是logging的数量是5k个奇数。 我想在这里实现的是将公司的行中的数据转换为列,以便稍后阶段能够计算每个公司的票数和平均数。

在sorting时陷入运行模式

我试图通过stringsby中的文本将sheet 2上的数据sorting到sheet 9 。 我认为从下面的代码逻辑很简单。 但是下面的代码给了 运行时错误1004; 为行wk.Rows(j).EntireRow.Selectselect范围类失败的方法 更新1: 我现在没有得到这个错误,但是它在很长一段时间里一直停留在[running]模式,我不得不中断代码的执行。 我正在尝试实现下面的I / O逻辑。 我认为我的代码应该可以工作,但要么需要很长的时间,要么陷入无限循环。 你能帮我吗 input: col B Commercial Tech Operation Commercial Commercial . . . . 输出: col B Commercial Commercial Commercial Tech Operation . . . 码 Option Explicit Sub SortByCommercial() Dim wk As Worksheet Dim sby, FinalRow, i, j, p Dim WsCount […]

使用VBA在Excel中创build季度,半年和年度汇总公式的好方法?

我在文档中有一个与图像布局相同的日历栏。 日历是从Power Pivot中复制的,但是我想用公式计算四分之一,半年和一年的单元格。 我想用VBA创build这些公式。 有没有什么聪明的方法来做到这一点? 日历可以在任何月份和年份开始和结束。 季度,半年和年度并不总是完整的,这意味着整个3个月,6个月或12个月并不总是包含在日历中。 我最好的想法是三次遍历所有列。 第一次,逐月build立一个SUM公式,直到登陆一年,然后把公式写到那一栏。 下一次,半年的专栏也一样。 第三次,为四分之一列做同样的事情。 但是这似乎太复杂了,不能做这么简单的事情。

用于公式的variables范围

我logging下我的macros中使用的代码,但它只会有用,如果该范围永远不会改变。 由于范围每次运行时都会改变,我怎样才能将“A1:E2”变成variables来解释变化的范围呢? 在这种情况下,我不认为xlLastCell会是一个正确的用法。 我知道如何获得结束单元格的列号和行号,但我无法弄清楚如何将它结合到我的代码中。 ActiveCell.Offset(2, 0).Range("A1:E2").Select Selection.FormulaR1C1 = "0"

VBAclosures空白工作簿

我之前发现了这个问题,但没有回答。 我有一些VBA代码格式不同的文件,并将其输出到Excel电子表格,然后将副本保存到两个不同的目录。 然而,我遇到的麻烦是它留下了一个空的工作簿打开,我不知道如何closures它。 我已经尝试了Workbooks.Close和Application.Quit,但都没有工作。 任何帮助将不胜感激。 这里是我所指的代码的一部分: sSaveAsFilePath = "\\Filesrv02\test\remit" + ".csv" sSaveAsFilePath2 = "\\Filesrv02\backup\remit" + Format(Date, "mmddyy") + ".csv" Application.DisplayAlerts = False ChDir "\\Filesrv02\test" ActiveWorkbook.SaveAs FileName:=sSaveAsFilePath, _ FileFormat:=xlCSV, CreateBackup:=False 'ActiveWorkbook.Close False ChDir "\\Filesrv02\Backup" ActiveWorkbook.SaveAs FileName:=sSaveAsFilePath2, _ FileFormat:=xlCSV, CreateBackup:=False ActiveWorkbook.Close True Application.DisplayAlerts = False MsgBox ("done") End Sub

VBA复制粘贴工作簿相同的工作表之间,通过对话框打开

我已经看到了这个问题的答案,是我正在寻找的变化,但是当我试图修改代码到我的情况,我不断收到错误消息。 我有两本练习册,一本硕士“模板”和一份名为“YTDJune2015”的月度报告。 每个都有15张,两者都是相同的,我想将月度报告中的数据复制到模板中,该模板具有计算15个独特表格中每一个的附加数据的公式。 我想使用“打开”对话框作为select源工作簿的方式,因为报表每月更新一次。 在打开对话框中select源文档后,我不断收到“对象需要”错误,无法弄清楚如何允许它打开源工作簿。 代码的范围部分也可能不正确,但是我还没有能够通过源文档的开始,所以我不能检查它。 我希望它遍历源工作簿中的每个工作表并复制相同的范围,然后粘贴到目标工作簿中。 到目前为止,我拥有的代码是: Sub UpdateWorkbook() Dim wbSource As Workbook, wbDest As Workbook Dim ws As Worksheet, rng As Range Application.ScreenUpdating = False Set wbSource = Application.GetOpenFilename(FileFilter:="Excel Filter (*.xlsx), *.Xlsx", Title:="Open File(s)", MultiSelect:=False) Set wbDest = Workbooks.Open("Template.xlsm") For Each ws In wbSource.Sheets For Each rng In ws.Range("C8:AB117").Areas wbDest.Sheets(ws.Name).Range(rng.Address).Value = rng.Value Next […]

获取与特定值关联的表中的多个列名(标题)到单元格中

我需要获取与特定值关联到一个单元格中的多个列名(标题) 正如我所解释的那样,我需要将对应于值“n”的标题名称添加到E列。 我用公式 =INDEX((A$1:D$1),MATCH("n",A2:D2,0)) 这里。 但它只给出一个列名。 我也开放给vba脚本。 但我认为它不需要vba。 只是改善上面的公式,可能是。 我试过了,失败了。 任何帮助。 感谢你们

我怎样才能使我的VBA包含第二系列的数据

当我使用下面的macros时,它只适用于一个系列数据集。 我怎样才能适应它,以便我可以包括多个系列? 目前,如果我尝试使用它来标记第二个集合,它将删除第一个,等等… 提前致谢 Sub AddXYLabels() If Left(TypeName(Selection), 5) <> "Chart" Then MsgBox "Please select the chart first." Exit Sub End If Set StartLabel = _ Application.InputBox("Click on the cell containing the first(top) label", Type:=8) Application.ScreenUpdating = False For Each pt In ActiveChart.SeriesCollection(1).Points pt.ApplyDataLabels xlDataLabelsShowValue pt.DataLabel.Caption = StartLabel.Value Set StartLabel = StartLabel.Offset(1) Next End Sub

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属性”。 我怎样才能使它工作? 谢谢!