Tag: excel 2007

根据许多标准乘以数值

我有两张表: http : //s4.postimg.org/aryzvl13v/Capture.png <两张表的图片。 我必须在第一张表中findsell price 。 为了做到这一点,我需要匹配的type 。 之后,我检查第二个表格中的cost是否超过B列。 然后我会find相应成本的乘数。 一旦我find合适的乘数,那么我可以find等于Cost x Multiplier的Sell Price 。 所以我需要一个与D type相匹配的公式,然后find最大可能的“如果成本大于”,最后将相应的乘数与成本相乘。 例如:假设我有一个types为PKG项目467874 ,成本为$8.45 。 因为它大于$ 3.00但小于$ 10.00,我会使用乘数1.85 。 所以467874的卖出价格是8.45 x 1.85 = $ 15.63 我需要能够稍后更改Sheet2,所以公式必须是dynamic的。 否则,我只会使用“IF”语句。 所以我希望能够在Sheet2上添加和删除字段。

VBA ErrorHandler MsgBox语法

这是一个基本的问题,但是Googlesearch之后我还没有find任何解决scheme。 这是我想要做的: 我无法使MsgBox正常启动:它以红色突出显示。 我认为这是一个语法问题。 Sub DataProcessingExperiment7 On Error GoTo ErrorHandler … ErrorHandler MsgBox("Error detected" & vbNewLine & "Error" & Err.Number & ": " & Err.Description, vbCritical, "Error Handler: Error" & Err.Number, , , asVbMsgBoxResult)

Excel VBA – 使用macros汇总数据

我想知道如果有人愿意给我一个新手VBA的帮助。 在表一中,我有这样的数据格式: 表1 我想要做的是使用VBA吐出下面的图dynamic填充该区域取决于它find多less: 表2 这是我的第一个VBA,所以我徘徊了一下。 这是我如何解决这个问题的想法: 我的想法是向下滚动Sheet1 col A中的数据中的string,并确定它是否是我们以前见过的date: Public Sub Test() ActiveSheet.Range("Sheet1!A1:A5000").AdvancedFilter Action:=xlFilterCopy, CopyToRange.Range("Sheet2!A1"), Unique:=True End Sub 问题 这个stream程图是否采取了正确的方法? 如果是这样的话,我该如何实现这种“这是否独一无二,如果是这样做,如果不这样做”那种设置。 我真的很感谢一些帮助实现这个代码的开始,所以我有一些东西要build立。 这是我到目前为止: https : //gist.githubusercontent.com/employ/af67485b8acddce419a2/raw/6dda3bb1841517731867baec56a0bf2ecf7733a7/gistfile1.txt

Excel 2003中的macros代码在2007年不起作用

此代码在Excel 2003中运行良好,但在Excel 2007中失败。我没有看到它在崩溃吗? 它到达“LastRow =” 时出错 。这是我的错误消息: 运行时错误13types不匹配 Dim LastRow As Long Dim LastColumn As Integer Dim LastCell As Range, NextCell As Range ' **************************************************** ' Finds LastRow and LastColumn With Worksheets("DB") ' Find Last Row/Col If WorksheetFunction.CountA(Cells) > 0 Then ' Search for any entry, by searching backwards by rows LastRow = Cells.Find(What:="*", After:=[A1], […]

通过macrosbutton将列添加到工作表

我想将新列添加到Excel工作表中的表中。 logging一个macros然后把它分配给一个button很容易,但是我的问题是表中的第一行有一个蓝色背景,当我点击button时,列中的第一个单元格有白色背景,而不是蓝色,即使我当我录制macros时改变了它。 我的代码: Sub AV() ' ' AV Macro ' ' ActiveSheet.Unprotect Password:="P@ssw0rd" Range("Table5[Column53]").Select Selection.ListObject.ListColumns.Add Range("H14").Select With Selection.Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .ThemeColor = xlThemeColorLight2 .TintAndShade = -0.499984740745262 .PatternTintAndShade = 0 End With Range("H15").Select ActiveSheet.Protect Password:="P@ssw0rd" End Sub

在一个领域循环一个公式

我有这样的Excel中的一些数据: | id | categorie | number | | 1 | a | 123 | | 2 | b | 23 | | 3 | c | 65 | | 4 | b | 102 | | 3 | d | 65 | | 4 | e | 102 | | .. | … | […]

在ListObjectresize后closures冻结

我有一个从外部获取数据并将其写入ListObject的Excel文件。 由于通过ListRows.Add逐行添加行非常缓慢,我将正确数量的空行添加到表单并调整ListObject的大小。 这在Excel 2010中运行得非常好。 使用Excel 2007时,它可以工作,但是当用户closures工作簿或Excel时,它会冻结,Windows将显示其崩溃窗口(询问您是否要closures,重新启动或debugging应用程序)。 这真的很烦人,看起来不太好:)。 任何想法,我可以做什么来防止呢? 也许你有一个更好的主意,快速成千上万的ListObject行? 此外随机(我重新打开文件没有改变,并执行macros),resize失败,错误信息和Excel崩溃,如果我停止执行。 这里是添加空行的function,如果我一步步跟着它,所有的范围是正确的,它做我所需要的。 我敢肯定,这是这个函数导致的问题,因为它消失时,我评论该函数的调用。 Sub AddRowsToListObject(sheetName As String, myTable As ListObject, addRows As Long) Dim i As Long If addRows > 0 Then Sheets(sheetName).Activate 'Add empty rows at the end i = myTable.DataBodyRange.row + myTable.ListRows.Count Sheets(sheetName).Range(Cells(i, 1), Cells(i + addRows – 2, 1)).EntireRow.Insert shift:=xlDown 'Offset -1 as […]

如何删除数字结尾处出现的零

使用Microsoft Office Excel 2007,我必须在单元格中插入超过15个数字的数字。 但我插入完整的数字时出现问题,因为单元格在15位后自动显示零:

计算时差时无法忽略date

A2 has 6:04:42 PM B2 has 6:05:02 PM C2 has 10/23/2015 6:04:38 PM在D2我需要一个公式,发现A2和C2(A2-C2)之间的区别,但是当我这样做,我得到#############因为在C2的date我相信。 我试图改变格式,提取时间值,但没有发生。 当我键入=TIMEVALUE(C2) ,它给了我#VALUE! 我怎样才能得到确切的区别(0:00:04) 谢谢

用单元引用填充许多公式的快速方法

我有一个大的数据电子表格,我正在写一个macros的VBA来填充另一个选项卡,复制与单元格引用不是值的表(我意识到这很奇怪,但这是我已经被要求做)。 我在这里的代码工作,但它需要永远。 我认为必须有一个更快的方式,因为用这个好的控制cv只需要不到一秒的时间。 Public Sub PopulateSheet() Dim inputSheet As Worksheet Dim outputSheet As Worksheet Dim rowCounter As Long Dim columnCounter As Long Dim maxRow As Long Set inputSheet = Sheets("inputSheet") Set outputSheet = Sheets("outputSheet") maxRow = inputSheet.Cells(1048576, 1).End(xlUp).Row With outputSheet For columnCounter = 1 To 6 For rowCounter = 1 To maxRow .Cells(rowCounter, columnCounter).Formula = […]