ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 Excel Home精品图文教程库
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
300集Office 2010微视频教程 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: lrlxxqxa

每天进步一点点并不太难

  [复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-5-23 10:09 | 显示全部楼层

从宏开始学习vba

http://club.excelhome.net/viewth ... p;page=1#pid3863046
录制宏有三方面的局限性:
1会出错,不得不修改;
2有多余的语句,对需要完成的工作没有任何帮助,需要删除(下划线、空心字体、上标、下标等)
3、宏不会判断、循环,加入for each。。。next等完善代码结构。

end属性除了同对象本身所处是否连续块有关外,还跟行列的hidden隐藏属性有关,一般来说,就是遇到隐藏行列,end属性均将将其忽略。所以取隐藏对象的end属性时系统会发生错误,从而导致程序中断。

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-5-23 10:14 | 显示全部楼层

v、_小乖输入和编辑数据综合技巧

http://club.excelhome.net/viewth ... p;page=1#pid3857500

输入和编辑数据
填充与序列
批注
公式的基本用法

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-5-23 10:18 | 显示全部楼层

Excel行、列、单元格区域以及页面设置

http://club.excelhome.net/viewth ... p;page=1#pid3843048

1、        行列单元格区域选择、插入、删除
2、        行列隐藏
3、        页面设置

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-5-23 10:22 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助

透视表组合、分组相关知识

http://club.excelhome.net/viewth ... p;page=1#pid3853699

一:针对不同数据类型的字段进行项目组合:
1.日期型:
2.组合数值型项目:
3.组合文本型项目:唯一的方法是运用手动方式进行组合:(首先进行排序)选中区域—组合
二:数据类型的不一致导致无法进行组合:
1.        空白单元格:修改数据源,重新做表
2.        数据类型不同:修改成统一的数据格式
3.        日期格式不同:转换数据类型将文本---数字,这里讲了一个type函数[=type(a1)],如果检测结果是1代表的是数字,如果检测结果是2代表文本(注:这里我们是用眼睛无法直接观察出来的)
4.        引用区域失效:检查数据源是否存在,用透视表向导检查数据源并重新指定

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-5-23 11:14 | 显示全部楼层

关于add方法在应用于不同对象时的用法1

http://hi.baidu.com/%C6%BD%B7%B2 ... d15cf030add136.html

2008-01-22 16:06expression.Add(Before, After, Count, Type)

expression   必需。该表达式返回上面的对象之一。

Before   Variant 类型,可选。指定工作表对象,新建的工作表将置于此工作表之前。

After   Variant 类型,可选。指定工作表对象,新建的工作表将置于此工作表之后。

Count   Variant 类型,可选。要新建的工作表的数目。默认值为 1。

Type   Variant 类型,可选。指定工作表类型。可为以下 XlSheetType 常量之一:xlWorksheet、xlChart、xlExcel4MacroSheet 或 xlExcel4IntlMacroSheet。默认值为 xlWorksheet。

说明
如果 Before 和 After 两者均省略,则新建的工作表将插入到活动工作表之前。

应用于 SmartTags 对象的 Add 方法。

添加智能标记。返回 SmartTag 对象。

expression.Add(SmartTagType)

expression   必需。该表达式返回一个 SmartTags 对象。

SmartTagType   String 类型,必需。智能标记的类型。

应用于 Styles 对象的 Add 方法。

新建样式并将其添加到当前工作簿的可用样式列表中。返回 Style 对象。

expression.Add(Name, BasedOn)

expression   必需。该表达式返回一个 Styles 对象。

Name   String 类型,必需。新样式的名称。

BasedOn   Variant 类型,可选。引用某单元格的 Range 对象,新样式即基于该单元格生成。如果省略本参数,就基于“常规” 样式建立新样式。

说明
如果指定名称的样式已经存在,该方法将基于 BasedOn 参数指定的单元格重新定义该存在的样式。下例基于活动单元格重新定义“常规”样式。

ActiveWorkbook.Styles.Add Name := "Normal", _
    BasedOn := ActiveCell
应用于 Trendlines 对象的 Add 方法。

创建新的趋势线。返回 Trendline 对象。

expression.Add(Type, Order, Period, Forward, Backward, Intercept, DisplayEquation, DisplayRSquared, Name)

expression   必需。该表达式返回一个 Trendlines 对象。

Type   XlTrendlineType 类型,可选。趋势线类型。

XlTrendlineType 可为以下 XlTrendlineType 常量之一。
xlExponential
xlLinear 默认值
xlLogarithmic
xlMovingAvg
xlPolynomial
xlPower

Order   Variant 类型,可选。如果 Type 为 xlPolynomial,本参数为必需参数。趋势线顺序。必须为 2 到 6 之间的整数(包括 2 和 6)。

Period   Variant 类型,可选。如果 Type 为 xlMovingAvg,本参数为必需参数。趋势线周期。必须为大于 1,而小于正添加趋势线的数据系列中数据点个数的整数。

Forward   Variant 类型,可选。趋势线向前延伸的周期数目(或散点图中的单位个数)。

Backward   Variant 类型,可选。趋势线向后延伸的周期数目(或散点图中的单位个数)。

Intercept   Variant 类型,可选。趋势线的截距。如果省略该参数,则回归分析将自动设置截距。

DisplayEquation   Variant 类型,可选。如果为 True,则在图表中显示趋势线的公式(与 R 平方值显示在同一数据标签中)。默认值为 False。

DisplayRSquared   Variant 类型,可选。如果为 True,则在图表中显示趋势线的 R 平方值(与公式显示在同一数据标签中)。默认值为 False。

Name   Variant 类型,可选。作为文本的趋势线的名称。如果省略该参数,由 Microsoft Excel 自动生成名称。

应用于 UserAccessList 对象的 Add 方法。

添加用户访问列表。返回一个 UserAccess 对象。

expression.Add(Name, AllowEdit)

expression   必需。该表达式返回一个 UserAccessList 对象。

Name   String 类型,必需。用户访问列表的名称。

AllowEdit   Boolean 类型,必需。如果为 True,则允许可访问列表中的用户编辑受保护工作表上的可编辑单元格区域。

应用于 Validation 对象的 Add 方法。

向指定区域内添加数据有效性检验。

expression.Add(Type, AlertStyle, Operator, Formula1, Formula2)

expression   必需。该表达式返回一个 Validation 对象。

Type XlDVType 类型,必需。数据有效性类型。

XlDVType 可为以下 XlDVType 常量之一。
xlValidateCustom
xlValidateDate
xlValidateDecimal
xlValidateInputOnly
xlValidateList
xlValidateTextLength
xlValidateTime
xlValidateWholeNumber

AlertStyle   Variant 类型,可选。有效性检验警告样式。可为以下 XlDVAlertStyle 常量之一:xlValidAlertInformation、xlValidAlertStop 或 xlValidAlertWarning。

Operator   Variant 类型,可选。数据有效性运算符。可为以下 XlFormatConditionOperator 常量之一:xlBetween、xlEqual、xlGreater、xlGreaterEqual、xlLess、xlLessEqual、xlNotBetween 或 xlNotEqual。

Formula1   Variant 类型,可选。数据有效性公式的第一部分。

Formula2   Variant 类型,可选。当 Operator 为 xlBetween 或 xlNotBetween 时,数据有效性公式的第二部分(其他情况下,此参数被忽略)。

说明
Add 方法所要求的参数依有效性检验的类型而定,如下表所示。

数据有效性类型 参数
xlValidateCustom Formula1 必需,忽略 Formula2。Formula1 必须包含一个表达式,数据项有效时该表达式取值为 True,而数据项无效时取值为 False。
xlInputOnly 能使用 AlertStyle、Formula1 或 Formula2 参数。
xlValidateList Formula1 必需,忽略 Formula2。Formula1 必须包含以逗号分隔的取值列表,或引用此列表的工作表。
xlValidateWholeNumber、xlValidateDate、xlValidateDecimal、xlValidateTextLength 或 xlValidateTime 必须指定 Formula1 或 Formula2 之一,或两者均指定。


应用于 VPageBreaks 对象的 Add 方法。

添加垂直分页符。返回 VPageBreak 对象。

expression.Add(Before)

expression   必需。该表达式返回一个 VPageBreaks 对象。

Before   Object 类型,必需。Range 对象。新的分页符将添加到本参数所指定的区域左方。

应用于 Watches 对象的 Add 方法。

添加在重新计算工作表时要跟踪的区域。返回 Watch 对象。

expression.Add(Source)

expression   必需。该表达式返回一个 Watches 对象。

Source   Variant 类型,必需。单元格区域的源。

应用于 Workbooks 对象的 Add 方法。

新建工作簿。新建的工作簿将成为活动工作簿。返回 Workbook 对象。

expression.Add(Template)

expression   必需。该表达式返回一个 Workbooks 对象。

Template   Variant 类型,可选。确定如何创建工作簿。如果本参数为指定一现有 Microsoft Excel 文件名的字符串,那么创建新工作簿将以该指定的文件作为模板。如果本参数为常量,新工作簿将包含指定类型的单张工作表。可为以下 XlWBATemplate 常量之一:xlWBATChart、xlWBATExcel4IntlMacroSheet、xlWBATExcel4MacroSheet 或 xlWBATWorksheet。如果省略本参数,Microsoft Excel 将创建包含一定数目的空白工作表的工作簿(该数目由 SheetsInNewWorkbook 属性设置)。

说明
如果 Template 参数指定的是文件,则该文件名可包含路径。

示例
应用于 AddIns 对象。

本示例从 A 驱动器中添加加载宏 Myaddin.xla。运行本示例后,Microsoft Excel 将把文件 A:\Myaddin.xla 复制到硬盘上的 Library 文件夹中,并将该加载宏的标题添加到“加载宏”对话框的列表中。

UseAddIn()

    Set myAddIn = AddIns.Add(Filename:="A:\MYADDIN.XLA", _
        CopyFile:=True)
    MsgBox myAddIn.Title & " has been added to the list"

End Sub
应用于 AllowEditRanges 对象。

本示例允许编辑活动工作表上的单元格区域 A1:A4,并通知用户,然后更改指定区域的密码并通知用户所做的更改。

Sub UseChangePassword()

    Dim wksOne As Worksheet

    Set wksOne = Application.ActiveSheet

    ' Protect the worksheet.
    wksOne.Protect

    ' Establish a range that can allow edits
    ' on the protected worksheet.
    wksOne.Protection.AllowEditRanges.Add _
        Title:="Classified", _
        Range:=Range("A1:A4"), _
        Password:="secret"

    MsgBox "Cells A1 to A4 can be edited on the protected worksheet."

    ' Change the password.
    wksOne.Protection.AllowEditRanges(1).ChangePassword _
        Password:="moresecret"

    MsgBox "The password for these cells has been changed."

End Sub
应用于 CalculatedFields 对象。

本示例向第一张工作表上的第一张数据透视表添加计算字段。

Worksheets(1).PivotTables(1).CalculatedFields.Add "PxS", _
    "= Product * Sales"
应用于 CalculatedMembers 对象。

下面的示例向数据透视表中添加集合,假定数据透视表已存在于活动工作表中。

Sub UseAddSet()

    Dim pvtOne As PivotTable
    Dim strAdd As String
    Dim strFormula As String
    Dim cbfOne As CubeField

    Set pvtOne = ActiveSheet.PivotTables(1)

    strAdd = "[MySet]"
    strFormula = "'{[Product].[All Products].[Food].children}'"

    ' Establish connection with data source if necessary.
    If Not pvtOne.PivotCache.IsConnected Then pvtOne.PivotCache.MakeConnection

    ' Add a calculated member titled "[MySet]"
    pvtOne.CalculatedMembers.Add Name:=strAdd, _
        Formula:=strFormula, Type:=xlCalculatedSet

    ' Add a set to the CubeField object.
    Set cbfOne = pvtOne.CubeFields.AddSet(Name:="[MySet]", _
        Caption:="My Set")

End Sub
应用于 ChartObjects 对象。

本示例创建新的嵌入图表。

Set co = Sheets("Sheet1").ChartObjects.Add(50, 40, 200, 100)
co.Chart.ChartWizard Source:=Worksheets("Sheet1").Range("A1:B2"), _
    Gallery:=xlColumn, Format:=6, PlotBy:=xlColumns, _
    CategoryLabels:=1, SeriesLabels:=0, HasLegend:=1
应用于 Charts 对象。

本示例创建空白图表工作表,并将其插入到最后一张工作表之前。

ActiveWorkbook.Charts.Add Before:=Worksheets(Worksheets.Count)
应用于 CustomProperties 对象。

本示例向活动工作表添加标识符信息,并将其名称和值返回给用户。

Sub CheckCustomProperties()

    Dim wksSheet1 As Worksheet

    Set wksSheet1 = Application.ActiveSheet

    ' Add metadata to worksheet.
    wksSheet1.CustomProperties.Add _
        Name:="Market", Value:="Nasdaq"

    ' Display metadata.
    With wksSheet1.CustomProperties.Item(1)
        MsgBox .Name & vbTab & .Value
    End With

End Sub
应用于 CustomViews 对象。

本示例在活动工作簿中新建一个自定义视图,并命名为“Summary”。

ActiveWorkbook.CustomViews.Add "Summary", True, True
应用于 FormatConditions 对象。

本示例向单元格区域 E1:E10 中添加条件格式。

With Worksheets(1).Range("e1:e10").FormatConditions _
    .Add(xlCellValue, xlGreater, "=$a$1")
    With .Borders
        .LineStyle = xlContinuous
        .Weight = xlThin
        .ColorIndex = 6
    End With
    With .Font
        .Bold = True
        .ColorIndex = 3
    End With
End With
应用于 HPageBreaks 对象。

本示例在单元格 F25 上方添加水平分页符,在其左方添加垂直分页符。

With Worksheets(1)
    .HPageBreaks.Add .Range("F25")
    .VPageBreaks.Add .Range("F25")
End With
应用于 Hyperlinks 对象。

本示例向单元格 A5 添加超链接。

With Worksheets(1)
    .Hyperlinks.Add Anchor:=.Range("a5"), _
        Address:="http://example.microsoft.com", _
        ScreenTip:="Microsoft Web Site", _
        TextToDisplay:="Microsoft"
End With
本示例向单元格 A5 中添加一个电子邮件超链接。

With Worksheets(1)
    .Hyperlinks.Add Anchor:=.Range("a5"), _
        Address:="mailto:someone@microsoft.com?subject=hello", _
        ScreenTip:="Write us today", _
        TextToDisplay:="Support"
End With

[ 本帖最后由 lrlxxqxa 于 2010-5-23 11:16 编辑 ]

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-5-23 11:14 | 显示全部楼层

关于add方法在应用于不同对象时的用法2

应用于 Names 对象。

本示例为活动工作簿中工作表 Sheet1 上的单元格区域 A1:D3 定义新名称。注意,如果工作表 Sheet1 不存在,则无任何返回值。

Sub MakeRange()

    ActiveWorkbook.Names.Add _
        Name:="tempRange", _
        RefersTo:="=Sheet1!$A$1:$D$3"

End Sub
应用于 OLEObjects 对象。

本示例在 Sheet1 中新建一个 Microsoft Word OLE 对象。

ActiveWorkbook.Worksheets("Sheet1").OLEObjects.Add _
    ClassType:="Word.Document"
本示例为第一张工作表添加命令按钮。

Worksheets(1).OLEObjects.Add ClassType:="Forms.CommandButton.1", _
    Link:=False, DisplayAsIcon:=False, Left:=40, Top:=40, _
    Width:=150, Height:=10
应用于 Parameters 对象。

本示例更改第一张查询表的 SQL 语句。语句“(city=?)”表明此查询为参数查询,城市值被设置为常量“Oakland”。

Set qt = Sheets("sheet1").QueryTables(1)
qt.Sql = "SELECT * FROM authors WHERE (city=?)"
Set param1 = qt.Parameters.Add("City Parameter", _
    xlParamTypeVarChar)
param1.SetParam xlConstant, "Oakland"
qt.Refresh
应用于 Phonetics 对象。

本示例向活动单元格中添加三个拼音文本字符串。然后将字符类型设置为 Hiragana,将字体颜色设置为蓝色,并将文本设置为可见。

ActiveCell.FormulaR1C1 = ""
ActiveCell.Phonetics.Add Start:=1, Length:=3, Text:=""
ActiveCell.Phonetics.Add Start:=4, Length:=3, Text:=""
ActiveCell.Phonetics.CharacterType = xlHiragana
ActiveCell.Phonetics.Font.Color = vbBlue
ActiveCell.Phonetics.Visible = True
应用于 PivotCaches 对象。

本示例在活动工作表的 A3 单元格上新建一个基于 OLAP 提供程序的数据透视表缓存,然后基于该缓存新建一个数据透视表。

Dim cnnConn As ADODB.Connection
Dim rstRecordset As ADODB.Recordset
Dim cmdCommand As ADODB.Command

' Open the connection.
Set cnnConn = New ADODB.Connection
With cnnConn
    .ConnectionString = _
        "Provider=Microsoft.Jet.OLEDB.4.0"
    .Open "C:\perfdate\record.mdb"
End With

' Set the command text.
Set cmdCommand = New ADODB.Command
Set cmdCommand.ActiveConnection = cnnConn
With cmdCommand
    .CommandText = "Select Speed, Pressure, Time From DynoRun"
    .CommandType = adCmdText
    .Execute
End With

' Open the recordset.
Set rstRecordset = New ADODB.Recordset
Set rstRecordset.ActiveConnection = cnnConn
rstRecordset.Open cmdCommand

' Create a PivotTable cache and report.
Set objPivotCache = ActiveWorkbook.PivotCaches.Add( _
    SourceType:=xlExternal)
Set objPivotCache.Recordset = rstRecordset
With objPivotCache
    .CreatePivotTable TableDestination:=Range("A3"), _
        TableName:="Performance"
End With

With ActiveSheet.PivotTables("Performance")
    .SmallGrid = False
    With .PivotFields("Pressure")
        .Orientation = xlRowField
        .Position = 1
    End With
    With .PivotFields("Speed")
        .Orientation = xlColumnField
        .Position = 1
    End With
    With .PivotFields("Time")
        .Orientation = xlDataField
        .Position = 1
    End With
End With

' Close the connections and clean up.
cnnConn.Close
Set cmdCommand = Nothing
Set rstRecordSet = Nothing
Set cnnConn = Nothing
应用于 PivotFormulas 对象。

本示例在第一张工作表上为第一份数据透视表创建一个新数据透视表公式。

Worksheets(1).PivotTables(1).PivotFormulas _
    .Add "Year['1998'] Apples = (Year['1997'] Apples) * 2"
应用于 PivotItems 对象。

本示例在第一张工作表上为第一份数据透视表创建一个新数据透视表项。

Worksheets(1).PivotTables(1).PivotItems("Year").Add "1998"
应用于 PivotTables 对象。

本示例在第一张工作表的 A1 单元格上创建一个基于 OLAP 提供程序的新数据透视表缓存,然后基于该缓存创建一个新的数据透视表。

Dim cnnConn As ADODB.Connection
Dim rstRecordset As ADODB.Recordset
Dim cmdCommand As ADODB.Command

' Open the connection.
Set cnnConn = New ADODB.Connection
With cnnConn
    .ConnectionString = _
        "Provider=Microsoft.Jet.OLEDB.4.0"
    .Open "C:\perfdate\record.mdb"
End With

' Set the command text.
Set cmdCommand = New ADODB.Command
Set cmdCommand.ActiveConnection = cnnConn
With cmdCommand
    .CommandText = "Select Speed, Pressure, Time From DynoRun"
    .CommandType = adCmdText
    .Execute
End With

' Open the recordset.
Set rstRecordset = New ADODB.Recordset
Set rstRecordset.ActiveConnection = cnnConn
rstRecordset.Open cmdCommand

' Create PivotTable cache and report.
Set objPivotCache = ActiveWorkbook.PivotCaches.Add( _
    SourceType:=xlExternal)
Set objPivotCache.Recordset = rstRecordset

ActiveSheet.PivotTables.Add _
    PivotCache:=objPivotCache, _
    TableDestination:=Range("A3"), _
    TableName:="Performance"

With ActiveSheet.PivotTables("Performance")
    .SmallGrid = False
    With .PivotFields("Pressure")
        .Orientation = xlRowField
        .Position = 1
    End With
    With .PivotFields("Speed")
        .Orientation = xlColumnField
        .Position = 1
    End With
    With .PivotFields("Time")
        .Orientation = xlDataField
        .Position = 1
    End With
End With

' Close the connections and clean up.
cnnConn.Close
Set cmdCommand = Nothing
Set rstRecordSet = Nothing
Set cnnConn = Nothing
应用于 PublishObjects 对象。

本示例将活动工作簿中工作表“First Quarter”上的 D5:D9 区域保存到名为“Stockreport.htm”的 Web 页中。使用电子表格组件可增加该 Web 页的交互性。

ActiveWorkbook.PublishObjects.Add( _
    SourceType:=xlSourceRange, _
    Filename:="\\Server2\Q1\Stockreport.htm", _
    Sheet:="First Quarter", _
    Source:="D5:D9", _
    HTMLType:=xlHTMLCalc).Publish
应用于 QueryTables 对象。

本示例基于 ADO 记录集创建一个查询表。为了向后兼容,本示例保留了已有的列排序和筛选设置以及布局信息。

Dim cnnConnect As ADODB.Connection
Dim rstRecordset As ADODB.Recordset

Set cnnConnect = New ADODB.Connection
cnnConnect.Open "Provider=SQLOLEDB;" & _
    "Data Source=srvdata;" & _
    "User ID=testac;Password=4me2no;"

Set rstRecordset = New ADODB.Recordset
rstRecordset.Open _
    Source:="Select Name, Quantity, Price From Products", _
    ActiveConnection:=cnnConnect, _
    CursorType:=adOpenDynamic, _
    LockType:=adLockReadOnly, _
    Options:=adCmdText

With ActiveSheet.QueryTables.Add( _
        Connection:=rstRecordset, _
        Destination:=Range("A1"))
    .Name = "Contact List"
    .FieldNames = True
    .RowNumbers = False
    .FillAdjacentFormulas = False
    .PreserveFormatting = True
    .RefreshOnFileOpen = False
    .BackgroundQuery = True
    .RefreshStyle = xlInsertDeleteCells
    .SavePassword = True
    .SaveData = True
    .AdjustColumnWidth = True
    .RefreshPeriod = 0
    .PreserveColumnInfo = True
    .Refresh BackgroundQuery:=False
End With
本示例向新的查询表中导入固定宽度的文本文件。该文本文件的第一列为 5 个字符宽,作为文本导入。第二列为 4 个字符宽,被跳过。其余部分则导入第三列中,并对其应用常规格式。

Set shFirstQtr = Workbooks(1).Worksheets(1)
Set qtQtrResults = shFirstQtr.QueryTables.Add( _
    Connection := "TEXT;C:\My Documents\19980331.txt",
    Destination := shFirstQtr.Cells(1,1))
With qtQtrResults
    .TextFileParsingType = xlFixedWidth
    .TextFileFixedColumnWidths := Array(5,4)
    .TextFileColumnDataTypes := _
        Array(xlTextFormat, xlSkipColumn, xlGeneralFormat)
    .Refresh
End With
本示例在活动工作表上新建查询表。

sqlstring = "select 96Sales.totals from 96Sales where profit < 5"
connstring = _
    "ODBC;DSN=96SalesData;UID=Rep21;PWD=NUyHwYQI;Database=96Sales"
With ActiveSheet.QueryTables.Add(Connection:=connstring, _
        Destination:=Range("B1"), Sql:=sqlstring)
    .Refresh
End With
应用于 RecentFiles 对象。

本示例将文件 Oscar.xls 添加到最近使用的文件列表中。

Application.RecentFiles.Add Name:="Oscar.xls"
应用于 Scenarios 对象。

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-5-23 11:34 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

身份证号码与县区对照表

http://club.excelhome.net/viewth ... p;page=1#pid3858469

除了应用举例里面的有效性验证有错外,其他功能还真是挺方便的。

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-5-23 22:03 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册

几种四舍五入的方法(round、floor、lookup、mround、ceiling)

答疑链接:http://club.excelhome.net/viewth ... p;page=1#pid3866511

ROUND
返回某个数字按指定位数取整后的数字。

语法
ROUND(number,num_digits)

Number    需要进行四舍五入的数字。

Num_digits    指定的位数,按此位数进行四舍五入。

说明

如果 num_digits 大于 0,则四舍五入到指定的小数位。
如果 num_digits 等于 0,则四舍五入到最接近的整数。
如果 num_digits 小于 0,则在小数点左侧进行四舍五入。
==================================================
FLOOR
将参数 Number 沿绝对值减小的方向向下舍入,使其等于最接近的 significance 的倍数。

语法

FLOOR(number,significance)

Number    所要四舍五入的数值。

Significance    基数。

说明

如果任一参数为非数值参数,则 FLOOR 将返回错误值 #VALUE!。
如果 number 和 significance 符号相反,则函数 FLOOR 将返回错误值 #NUM!。
不论 number 的正负号如何,舍入时参数的绝对值都将减小。如果 number 恰好是 significance 的倍数,则无需进行任何舍入处理。
===========================================================================================================
CEILING
全部显示
全部隐藏
将参数 Number 向上舍入(沿绝对值增大的方向)为最接近的 significance 的倍数。例如,如果您不愿意使用像“分”这样的零钱,而所要购买的商品价格为 ¥4.42,可以用公式 =CEILING(4.42,0.1) 将价格向上舍入为以“角”表示。

语法

CEILING(number,significance)

Number  要舍入的数值。

Significance  用以进行舍入计算的倍数。
===================================================
MROUND
全部显示
全部隐藏
返回参数按指定基数舍入后的数值。

语法

MROUND(number,multiple)

Number  是要进行四舍五入的数值。

Multiple  是要对数值 number 进行四舍五入的基数。

[ 本帖最后由 lrlxxqxa 于 2010-6-10 22:54 编辑 ]

几种四舍五入的方法.rar

17.5 KB, 下载次数: 31

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-5-24 00:23 | 显示全部楼层

从带空行的数据源提取不重复值,隔行显示

http://club.excelhome.net/viewth ... p;page=1#pid3866845

自己写的:
=INDEX(A:A,SMALL(IF(MATCH($A$1:$A$20,$A$1:$A$20,0)=ROW($A$1:$A$20),ROW($1:$20),4^8),ROW(A1)))&""
注意其中的4^8换成"",下面会显示#N/A
晚枫的公式:
=IF(MOD(ROW(1:1),2),INDEX(A:A,SMALL(IF(($A$1:$A$20<>"")*MATCH(IF($A$1:$A$20<>"",$A$1:$A$20),IF($A$1:$A$20<>"",$A$1:$A$20),)=ROW($A$1:$A$20),ROW($A$1:$A$20),4^8),ROW(2:2)/2)),"")&""
=====================================================================
分几步:
如果没有空行,可以用这个:
=INDEX(A:A,SMALL(IF(MATCH($A$1:$A$20,$A$1:$A$20,0)=ROW($A$1:$A$20),ROW($1:$20),4^8),ROW(A1)))&""
但是如果有了空行,small的第一参数会返回内存数组为{1;65536;65536;65536;65536;65536;65536;65536;65536;#N/A;11;65536;65536;#N/A;15;65536;65536;65536;#N/A;20}
small运算出错。为了处理这种错误,用if加了判断,即公式中的($A$1:$A$20<>""),得到了没有错误值的内存数组为
{1;65536;65536;65536;65536;65536;65536;65536;65536;65536;11;65536;65536;65536;15;65536;65536;65536;65536;20}
最后一步就是隔行显示
再用row函数结合mod和if,应该看得懂了,核心是中间那一步
=========================================================
修改下更好理解
早上坐公交的时候想了下,其实这个运算有点绕,就说($A$1:$A$20<>"")*MATCH(IF($A$1:$A$20<>"",$A$1:$A$20)这里吧,{TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;TRUE;FALSE;TRUE;TRUE;TRUE;FALSE;TRUE;TRUE;TRUE;TRUE;FALSE;TRUE}*{1;1;1;1;1;1;1;1;1;10;11;11;11;10;15;15;15;15;10;20}={TRUE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;TRUE;FALSE;FALSE;FALSE;FALSE;TRUE}就是为了利用match处理掉错误值,从而使small第一参数内存数组为{1;65536;65536;65536;65536;65536;65536;65536;65536;65536;11;65536;65536;65536;15;65536;65536;65536;65536;20}
所以要实现同样的目的,用iserror就容易理解多了。改了一下:
=IF(MOD(ROW(1:1),2),INDEX(A:A,SMALL(IF(IF(ISERROR(MATCH($A$1:$A$20,$A$1:$A$20,0)),0,MATCH($A$1:$A$20,$A$1:$A$20,0))=ROW($A$1:$A$20),ROW($1:$20),4^8),ROW(2:2)/2)),"")&""
殊途同归

[ 本帖最后由 lrlxxqxa 于 2010-5-24 12:02 编辑 ]

带空行提取不重复值.rar

4.03 KB, 下载次数: 53

TA的精华主题

TA的得分主题

 楼主| 发表于 2010-5-24 11:12 | 显示全部楼层

EXCEL2003版的一些限制

http://hi.baidu.com/study__%D0%A ... d8a3b4c8eaf4b2.html
工作表和工作簿规范
功能 最大限制

打开的工作簿个数 受可用内存和系统资源的限制

工作表大小 65,536 行乘以 256 列

列宽 255 个字符

行高 409 磅

分页符个数 水平方向和垂直方向各 1000 个

单元格内容(文本)的长度 32,767 个字符。单元格中只能显示 1,024 个字符;而编辑栏中可以显示全部 32,767 个字符。

工作簿中的工作表个数 受可用内存的限制(默认为 3 个工作表)

工作簿中的颜色数 56 种

工作簿中的单元格样式种类 4,000

工作簿中命名视图 (视图:视图是一组显示和打印设置,可对其进行命名或将其应用于工作簿。同一个工作簿可有多个视图,而无需将其保存为单独的工作簿副本。)个数 受可用内存限制

自定义数字格式种类 200 到 250 之间,取决于安装的 Excel 版本的语言。

工作簿中的名称个数 受可用内存限制

工作簿中的窗口个数 受系统资源限制

窗口中的窗格个数 4

链接的工作表个数 受可用内存限制

方案 (方案:可在工作表模型中替换的一组命名输入值。)个数 受可用内存的限制;汇总报表只显示前 251 个方案

方案中的可变单元格个数 32

规划求解中的可调单元格个数 200

自定义函数个数 受可用内存限制

缩放范围 10% 到 400%

报表个数 受可用内存限制

排序引用的个数 单个排序中为 3,如果使用连续排序则没有限制

撤消层次 16

数据窗体中的字段个数 32

工作簿中的自定义工具栏个数 受可用内存限制

自定义工具栏按钮个数 受可用内存限制


工作组规范


功能 最大限制

可同时打开和使用一个共享工作簿 (共享工作簿:允许网络上的多位用户同时查看和修订的工作簿。每位保存工作簿的用户可以看到其他用户所做的修订。)的用户人数 256

共享工作簿中的个人视图 (视图:视图是一组显示和打印设置,可对其进行命名或将其应用于工作簿。同一个工作簿可有多个视图,而无需将其保存为单独的工作簿副本。)个数 受可用内存限制

修订记录 (修订记录:在共享工作簿中,记录在过去的编辑会话中所做的修订信息。该信息包括修订者的名字、修订的时间以及被修订的数据内容。)保留的天数 32,767(默认为 30 天)

可一次合并的工作簿个数 受可用内存限制

在共享工作簿中可突出显示的单元格个数 32,767

突出显示修订处于打开状态时,用于标识不同用户所作修订的颜色种类 32(每个用户用一种颜色标识。当前用户所作更改用海军蓝突出显示)


计算规范


功能 最大限制

数字精度 15 位

单元格中可键入的最大数值 9.99999999999999E+307

最大正数 1.79769313486231E+308

最小负数 -2.2251E-308

最小正数 2.229E-308

最大负数 -2.2250738585073E-308

公式内容的长度 1,024 个字符

迭代次数 32,767

工作表数组个数 受可用内存限制。另外,数组不能引用整个列。例如,数组不能引用整个 C:C 列或 C1:C65536 区域。然而,数组可以引用区域 C1:D65535,因为此区域比最大工作表的大小少一行,且未包括整个 C 或 D 列。

选定区域个数 2,048

函数的参数个数 30

函数的嵌套层数 7

可用工作表函数的个数 329

计算允许的最早日期 1900 年 1 月 1 日(如果使用 1904 年日期系统,则为 1904 年 1 月 1 日)

计算允许的最晚日期 9999 年 12 月 31 日

可以输入的最大时间 9999:59:59


数据透视表规范


功能 最大限制

工作表上的数据透视表 (数据透视表:一种交互的、交叉制表的 Excel 报表,用于对多种来源(包括 Excel 的外部数据)的数据(如数据库记录)进行汇总和分析。) 受可用内存限制

每字段中唯一项的个数 32,500

数据透视表中的行字段 (行字段:数据透视表中按行显示的字段。与行字段相关的项显示为行标志。)或列字段 (列字段:数据透视表中按列显示的字段。与列字段相关的项显示为列标志。)个数 受可用内存限制

数据透视表中的页字段 (页字段:在数据透视表或数据透视图报表中指定为页方向的字段。在页字段中,既可以显示所有项的汇总,也可以一次显示一个项,而筛选掉所有其他项的数据。)个数 256(可能会受可用内存的限制)

数据透视表中的数据字段 (数据字段:源数据清单、表或数据库中的字段,其中包含在数据透视表或数据透视图报表中汇总的数据。数据字段通常包含数字型数据,如统计或销售数量。)个数 256

数据透视表中的计算项 (计算项:数据透视表字段或数据透视图字段中的项,该项使用用户创建的公式。计算项使用数据透视表或数据透视图报表中相同字段的其他项的内容进行计算。)公式个数 受可用内存限制


图表规范


功能 最大限制

与工作表链接的图表个数 受可用内存限制

图表引用的工作表个数 255

图表中的数据系列 (数据系列:在图表中绘制的相关数据点,这些数据源自数据表的行或列。图表中的每个数据系列具有唯一的颜色或图案并且在图表的图例中表示。可以在图表中绘制一个或多个数据系列。饼图只有一个数据系列。)个数 255

二维图表的数据系列中数据点 (数据点:在图表中绘制的单个值,这些值由条形、柱形、折线、饼图或圆环图的扇面、圆点和其他被称为数据标志的图形表示。相关的数据标志组成一个数据系列。)个数 32,000

三维图表的数据系列中的数据点个数 4,000

图表中所有数据系列的数据点个数 256,000

线型 8 种

线条粗细 4

区域图案(屏幕显示)种类 18

全部区域图案与颜色组合数(彩色显示) 56,448

图案与颜色的组合数(彩色打印机) 56,448(实际个数与打印机及其软件有关)

数据透视图报表 (数据透视图报表:提供交互式数据分析的图表,与数据透视表类似。可以更改数据的视图,查看不同级别的明细数据,或通过拖动字段和显示或隐藏字段中的项来重新组织图表的布局。)中的页字段 (页字段:在数据透视表或数据透视图报表中指定为页方向的字段。在页字段中,既可以显示所有项的汇总,也可以一次显示一个项,而筛选掉所有其他项的数据。)个数 256(可能会受可用内存的限制)

数据透视表中的数据字段 (数据字段:源数据清单、表或数据库中的字段,其中包含在数据透视表或数据透视图报表中汇总的数据。数据字段通常包含数字型数据,如统计或销售数量。)个数 256

数据透视表中的计算项公式个数 受可用内存限制

[ 本帖最后由 lrlxxqxa 于 2010-5-24 11:14 编辑 ]
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-5-3 11:12 , Processed in 0.038442 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表