chrisfang的Excel大全
  • 单元格区域选取的多种方法

    2012-10-15
    01

    要选取一个单元格区域,除了常规的鼠标拖选,还有多少其他的可行方法?
    如果有数万行数据要去选取,怎么操作最快?
    在包含隐藏行列的情况下如何仅对可见部分进行操作?
    多表区域如何选取?
    阅读全文 »

    作者: chrisfang | 分类: Excel技巧 | 阅读: 16,567 次浏览 | Tags:
  • 自适应下拉菜单

    2012-10-11
    3

    很多人可能知道,使用Excel【数据有效性】当中的【序列】功能,可以在单元格内创建一个下拉菜单,在进行输入时可以在下拉菜单中选择项目。这样的下拉菜单可以提高用户输入时的准确性和便利性。
    阅读全文 »

    作者: chrisfang | 分类: Excel技巧 | 阅读: 18,460 次浏览 | Tags:
  • 双层复合饼图绘制方法

    2012-10-11
    7

    饼图通常用于展现数据当中多个项目的组成和占比情况,例如市场份额、收入支出结构、食物成分等等。如果在不同的组成项目中对某个项目又从另一个统计角度进行了更进一步的细分,形成两个不同层次的占比组成。例如在下面的图中,在桌面应用程序分类中统计划分成视频、游戏、阅读、音乐和其他五个大类,而在“游戏”这个类别中又根据游戏的不同类型划分成休闲益智、冒险射击、动作策略和其他类型四个统计分类。
    阅读全文 »

    作者: chrisfang | 分类: Excel图表 | 阅读: 19,276 次浏览 | Tags:
  • 在VBA中调用调色板

    2012-10-03

    ————————————————以下原文发表于2010-1-16——————————————

    在有些程序中,需要向用户提供选择颜色的功能,调用Excel或Windows的调色板是一种比较理想的交互方式,关于在VBA中如何调用调色板,本人总结了以下几种方法:

    (以下程序以用户窗体中调用调色板修改Label1的标签字体颜色ForeColor为例)

    方法一:调用单元格格式中的“字体”选项卡对话框。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    
    Private Sub CommandButton1_Click()
    '保存活动单元格当前字体格式设置
    With ActiveCell.Font
    x_name = .Name
    x_fontstyle = .FontStyle
    x_size = .Size
    x_Strikethrough = .Strikethrough
    x_Superscript = .Superscript
    x_Subscript = .Subscript
    x_OutlineFont = .OutlineFont
    x_Shadow = .Shadow
    x_Underline = .Underline
    x_ColorIndex = .ColorIndex
    End With
    dlg = Application.Dialogs(xlDialogActiveCellFont).Show '调用活动单元格字体设置选项卡对话框
    '************其他类似对话框*************
    'Application.Dialogs(xlDialogFontProperties).Show
    'Application.Dialogs(xlDialogFormatFont).Show
    'Application.Dialogs(xlDialogFont).Show
    'Application.Dialogs(xlDialogPatterns).Show '单元格底纹设置
    'Application.Dialogs(xlDialogReplaceFont).Show '查找替换对话框中的字体设置
    'Application.Dialogs(xlDialogStandardFont).Show
    '************************************
    If dlg = True Then
    Application.ScreenUpdating = False
    Me.Label1.ForeColor = ActiveCell.Font.Color
    '恢复活动单元格原有字体格式设置
    With ActiveCell.Font
    .Name = x_name
    .FontStyle = x_fontstyle
    .Size = x_size
    .Strikethrough = x_Strikethrough
    .Superscript = x_Superscript
    .Subscript = x_Subscript
    .OutlineFont = x_OutlineFont
    .Shadow = x_Shadow
    .Underline = x_Underline
    .ColorIndex = x_ColorIndex
    End With
    Application.ScreenUpdating = True
    End If
    End Sub

    这个方法的缺点是显示的对话框中不仅仅包含颜色设置,还有字体、加粗、斜体等等其他字体格式,虽然在代码中屏蔽了颜色以外的设置功能,但还是容易引起用户误解。当然,如果需要设置字体的更多格式,还是比较适合使用此方法。

    方法二:调用Excel中的“编辑颜色对话框”
    在Excel的选项设置中,有一项Excel调色板的设置(Excel2003菜单:工具—选项—颜色—修改),可以对Excel调色板中的56种颜色进行编辑修改自定义,此方法就是调用这里的编辑颜色对话框。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    
    Private Sub CommandButton2_Click()
    oldcolor = ActiveWorkbook.Colors(1) '保存活动工作簿中调色板第一格的当前颜色
    If Application.Dialogs(xlDialogEditColor).Show(1) = True Then '调用编辑颜色对话框,选择的颜色将返回到调色板的第一格
    '************其上一级对话框,但不太适合使用*************
    'Application.Dialogs(xlDialogColorPalette).Show
    'Application.Dialogs.Item(xlDialogColorPalette).Show
    '*************************************************
    Me.Label1.ForeColor = ActiveWorkbook.Colors(1)
    ActiveWorkbook.Colors(1) = oldcolor '恢复活动工作簿调色板第一格的原有颜色
    End If
    End Sub

    这个方法是个人比较推荐的一种方法,操作简单。网上有不少地方都提到使用Application.Dialogs(xlDialogColorPalette).Show这个对话框,但从实际使用上来看,还是现在这个对话框(xlDialogEditColor)更合适。

    方法三:调用WindowsAPI,调用Windows的调色板。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    
    Private Type CHOOSECOLOR
    lStructSize As Long
    hwndOwner As Long
    hInstance As Long
    rgbResult As Long
    lpCustColors As Long
    flags As Long
    lCustData As Long
    lpfnHook As Long
    lpTemplateName As Long
    End Type
    Private Type RGBColor
    R As Byte
    G As Byte
    B As Byte
    space As Byte '用作间隔
    End Type
    Private Declare Function ChooseColorA Lib "Comdlg32" (pChoosecolor As CHOOSECOLOR) As Long
    Dim CustColors(1 To 16) As RGBColor
    Private Sub CommandButton3_Click()
    Dim CColor As CHOOSECOLOR
    With CColor
    .lStructSize = Len(CColor) '结构长度
    .lpCustColors = VarPtr(CustColors(1)) '存储自定义颜色的缓冲区地址,CustColors为公共变量,用于保存自定义颜色,以便于用户下一次打开调色板时仍能够使用前一次的自定义颜色
    End With
    If ChooseColorA(CColor) = 0 Then Exit Sub '等于0表示按下了取消键
    Me.Label1.ForeColor = CColor.rgbResult
    End Sub

    此方法为API调用,调用的是Windows系统的调色板,稍显繁琐。
    其中CColor.lpCustColors指向16种自定义颜色的地址,如果要在程序运行过程中保存用户的自定义颜色,使得任何时候打开调色板都可以继续使用之前所定义的颜色,可以通过定义CustColors(1 to 16) As Byte为公共变量,然后使用VarPtr函数转换后将VarPtr(CustColors(1))赋值给CColor.lpCustColors。上面的代码中定义了类型RGBColor,主要用于方便程序处理中取得自定义颜色的RGB值,实际使用中并非必需。
    如果不需要保存自定义颜色,lpCustColors的赋值比较随意。

    方法四:使用CommonDialog控件,调用Windows调色板,需要系统控件支持。(Windows7中好像没有这个控件)

    1
    2
    3
    4
    5
    6
    7
    8
    
    Private Sub CommandButton4_Click()
    On Error GoTo zz
    Me.CommonDialog1.CancelError = True
    Me.CommonDialog1.ShowColor
    Me.Label1.ForeColor = CommonDialog1.Color
    Exit Sub
    zz:
    End Sub

    此方法也是调用Windows中的调色板,其缺点就是需要附带控件,Xp中一般都包含了CommonDialog控件。

    综合以上几种方法来看,个人比较推荐方法二,简单易行,而且使用的是Excel中的调色板,还可以自定义颜色。如果对API比较熟悉,也可以使用方法三。除此以外,也可以自己制作一个调色板窗体供用户选择颜色。例如下面这个John-Walkenbach的作品:
    http://spreadsheetpage.com/index.php/site/tip/creating_a_color_picker_dialog_box/

    本文附件下载:调用调色板 (1846)

     

    作者: chrisfang | 分类: ExcelVBA程序 | 阅读: 10,062 次浏览 | Tags:
  • 站内用到的WordPress插件

    2012-09-22

    喜欢WordPress的很大一个方面原因就是因为有非常丰富的插件可以选用,相信很多人都有同感。本文将简单介绍一下本站中所使用到的这些WordPress插件,为自己做个建站的备忘记录,也供其他朋友参考。

    FireStats

    FireStats是一个站点统计插件,安装启用以后,会在仪表盘里面出现FireStats菜单,打开以后可以显示站点访问统计信息,包括访问次数、来源、时段、页面停留、搜索来源等等,信息非常全。


     
    利用FireStats的API,还可以把统计数据直接显示在页面当中。API的具体使用方法可参考FireStats的官方站点说明:http://www.firestats.cc/wiki/API
    本站就把PageViews和Visits的数据显示在页面底部,具体方法是在主题文件中找到foot.php,把其中显示站点信息的代码修改为:

    <div id="footer">
    	<p>&copy; 2011 <?php bloginfo('name'); ?> | <?php if (defined('FS_API')) echo "浏览量: ".fs_api_get_page_views()?> | <?php if (defined('FS_API')) echo "访客数: ".fs_api_get_visits()?> | Powered by <a href="http://wordpress.org/" target="_blank">WordPress</a></p>
    </div>

    页面显示效果如下:


     

    NextGEN Gallery

    NextGEN Gallery是一个著名的图片插件,可以在文章中插入图片集、幻灯片或单张图片,点击单张图片还可以打开单独的图片浏览器,适合大图高清浏览。

    安装启用以后,后台会出现图集菜单,可以在其中创建相册上传图片,并对图片进行设置。

    撰写文章需要插入图片时,使用代码即可。例如下面的代码:

    [singlepic id=27 w=350 h= float=]

    页面中显示的图片包含背景,可以在图集的样式中(nggallery.css)自定义背景颜色,例如本站就根据主题的配色情况,修改了这部分代码:

    /* ----------- Single picture -------------*/
    .ngg-singlepic {
    	background-color:#E7E7E7;
    	display:block;
    	padding:4px;
    }

     

    JiaThis分享工具

    JiaThis分享工具是一个从博客到国内各主要SNS网站的分享工具,包括新浪微博、腾讯微博、开心网、豆瓣、人人网、QQ空间等等都可以完成一键式分享。 这个插件不需要什么设置,启用以后选择分享的样式(有侧边栏、按钮式、图标式等样式可供选择),然后就会在文章页当中显示。

     

    (BTW:目前换成了百度分享)

     

    WordPress Database Backup

    WordPress Database Backup(WP DB Backup)是一款备份工具。

    安装启用以后,在后台的工具—备份菜单下面可以进行备份设置。可以在其中手动备份,也可以很方便的设置自动定时备份,并且把备份下来的WordPress数据表发送到指定邮箱。

     

    WP Keyword Link

    WP Keyword Link可以为文章中的关键字自动创建链接。

    安装启用此插件以后,在后台的设置—WP Keywordlink中可以定义需要链接的关键词和相应的链接,可以是内部链接也可以是外部链接,还可以将文章的Tag标签自动设置为链接关键词。使用以后,文章中的相应关键词会自动包含链接,很方便进行索引,类似于维基百科的那种形式。

     

    WP-Syntax

    WP-Syntax是一个代码高亮工具。

    对于经常需要在文章中引用代码的人来说,选用一款合适的代码高亮工具很有必要,类似的插件有不少,我经过比较挑选,最终选择了这款插件,一方面是考虑外观的简洁型,另一方面主要考虑使用的便捷性。

    安装启用这个插件以后,在撰写文章的时候使用<pre lang="LANGUAGE" line="1">代码</pre>的标签就可以高亮引用其中的代码,其中LANGUAGE参数包含php、java、asp、css、c、vb等等常见的语言。例如使用<pre lang='VB'> sub test() msgbox "Hello World!" end sub </pre>的实际效果如下:

    sub test()
    msgbox "Hello World!"
    end sub

    因为平时引用VB的代码比较多,所以做些修改,直接在撰写文章的界面中加入了可以生成VB类型<pre>标签的代码,具体方法如下:

    找到WordPress文件夹里的\wp-includes\js\quicktags.js这个文件,这个文件里是编辑按钮的语句,在最末尾添加(注意pre和/pre前面没有空格):

    edButtons[150]=new c.TagButton("ed_vbcode","vbcode","< pre lang='VB'>","< /pre>","z")

    如果是其他语言,修改lang的参数即可。修改后的文章编辑器效果如下图

    WordPress升级以后,上述方法没效果了,要改个方法:
    1. 在主题的目录下创建一个my_quicktags.js文件,文件里面输入语句(注意pre和/pre前面没有空格)

     QTags.addButton("ed_vbcode","vbcode","< pre lang='VB'>","< /pre>","z");

    2. 在主题目录中的function.php中增加如下代码:

    // 自定义编辑器按钮
    add_action('admin_print_scripts', 'my_quicktags');
    function my_quicktags() {
        wp_enqueue_script(
            'my_quicktags',
            get_stylesheet_directory_uri().'/my_quicktags.js',
            array('quicktags')
        );
    }

    这就可以了。

    WP-Syntax默认的字体不太喜欢,动手设置为自己定义的字体。
    找到wp-syntax/geshi/geshi.php打开,找到里面的语句:

    var $overall_style = 'font-family:monospace;';

    把其中的monospace替换为自己的字体,例如我用的是Consolas。
    然后找到wp-syntax/wp-syntax.css,将其中的内容替换为以下代码:

    .wp_syntax {color:#100;background-color: #f9f9f9;margin:1em;overflow:auto;}
    .wp_syntax table{border-collapse: collapse;}
    .wp_syntax div, .wp_syntax td {vertical-align: top;padding: 2px 4px;}
    .wp_syntax .line_numbers {text-align: right;background-color: #def;color: gray;overflow: visible;}
    .wp_syntax pre{font-size:12px;margin:0;width:auto;float:none;clear:none;overflow:visible;word-wrap:break-word;line-height:1.5;white-space:pre;}

    wp-summary-automatically

    wp-summary-automatically是一个中文自动摘要工具。

    WordPress默认情况下首页文章是全文显示。可以在撰写文章时插入<!--more-->标签(在编辑栏中有more按钮)来定义文章的摘要,使其在首页只显示摘要部分。但是很多旧文章如果去逐一设置未免太过繁琐,所以如果再有一个自动摘要的插件就更好不过。

    试用了几款不同的摘要插件:

    wp-utf8-excerpt

    只能定义摘要长度,不能按段落分割,文字意思可能会被生生截断,对NextGEN Gallery的图片代码处理也不理想,可能会断在图片代码中间造成图片无法显示。

     

    wp-chinese-excerpt

    这是前面这款插件的改进版,增加了更方便的自定义设置界面(下图),但是前面存在的问题依旧如此。

     

    WP Limit Posts Automatically

    这款插件功能很简单,但是除了根据长度截取摘要以外,还可以根据段落来定义摘要位置,可以保留视频、图片等内容,但是只能选取第一段。

     

    wp-summary-automatically

    最后选用的就是这款,这是前面这款插件的修改版,去掉了根据长度进行摘要选取的功能,直接使用段落进行摘要截取,而且可以自定义段落的数量。

    安装启用以后在后台的设置—WP自动摘要设置当中可以看到如下设置界面,使用非常方便。

     

    但是这款插件对NextGEN Gallery的图片代码依旧没有识别(摘要算法中也许可以进行追加定义),因此目前的方案是手动<!--more-->标签和插件的自动摘要配合使用。个别需要显示NextGEN Gallery图片的文章就手动定义摘要位置,其他的则由插件自动生成,优先级是手动标签在前。

     

    ----------------以下更新于2012-11-02-----------------

    过了这么久才发现我的网站还缺一个文章浏览量统计的插件,于是赶紧安装了一个,可惜错过了之前的点击统计。

    WP-PostViews

    这款插件安装以后可以在后台【设置】菜单中进行设置,除了外观样式以外几乎没有什么需要改动的地方。

    在设置完成以后,可以在【外观】——【小工具】菜单中把【热门文章】添加到侧边栏中,可以设置显示的条目数量、文章分类等等。

    除此之外,如果希望在文章页面或首页上显示文章点击次数,需要在相应的页面模板中修改代码。

    需要修改的页面包括:文章页single.php,首页INDEX.php,搜索页search.php,分类目录页category.php

    增加的代码如下

    <?php _e("阅读: "); ?><?php if(function_exists('the_views')) { the_views(); } ?>

    修改完成以后就可以在相应页面上看到相关数字统计结果。

     

    ----------------以下更新于2014-02-03-----------------

    对网站进行SEO测试,报告发现大多数的图片都没有添加ALT信息。文章里用到的插图很多,全都手动设置的话太花时间,因此还是用插件来自动解决:
    SEO Friendly Images
    这款插件安装以后可以在【设置】菜单中进行设置,可以自动添加图片的标题和ALT信息,可以选择的自动内容包括文章标题、文章Tag标签、文章分类和图片标题。还可以选择是否覆盖原有的图片标题和ALT信息。

    但是需要留意的是,这个插件无法解决文章评论者头像图片的ALT信息添加问题,因此现在干脆就把评论者的头像显示功能给关闭了,页面反而更清爽。

    作者: chrisfang | 分类: 站内动态 | 阅读: 7,738 次浏览 | Tags:
  • 在PPT中演示数据透视表之二

    2012-09-21
    点击编辑按钮长时间无响应

    在《在PPT中演示数据透视表》一文中,介绍了使用OWC组件中的Microsoft Office PivotTable控件在PPT中嵌入可以交互的数据透视表的方法。由于OWC组件最初是在Office 2003版本中的自带组件,在Office 2007和Office 2010版本中都没有包含这部分。但是微软曾经更新过OWC的12.0版本,可以在Office 2007下单独安装使用,而在Office 2010下安装使用时,部分用户会发现下图中点击【编辑】按钮时会没有响应。
    阅读全文 »

    作者: chrisfang | 分类: PPT技巧 | 阅读: 5,894 次浏览 | Tags:
  • 在PPT中演示数据透视表

    2012-09-20
    数据透视图所使用的控件

    数据透视表在Excel当中是十分有用的数据分析工具,它提供了一种交互的操作方式,可以让用户根据自己的需求重新组织数据的分组结构,自动进行相应的分类统计。

    在通常情况下,如果要把Excel表格复制到PPT幻灯片中,一般只能得到一个静态的数据表,在幻灯片放映演示的时候无法直接对表格进行操作更无法进行数据透视表式的交互操作。但是Office提供了一种Office Web Components组件(简称OWC),可以嵌入到PPT页面中,形成可以交互的操作环境。OWC组件是Office 2003版本的一部分,在2007以上版本中不再包含这个组件,但是可以在2007以上版本中单独安装这个组件来使用。
    阅读全文 »

    作者: chrisfang | 分类: PPT技巧 | 阅读: 6,238 次浏览 | Tags:
  • 在图表中为负值设置不同颜色

    2012-09-19
    完成结果

    在图表中,有时候会出现一些负数,为了与正值的数据图形形成一些明显对比,会需要给这些负数的数值系列使用不同的颜色进行填充。
    阅读全文 »

    作者: chrisfang | 分类: Excel图表 | 阅读: 7,307 次浏览 | Tags:
  • PowerView制作动态图表

    2012-07-25
    点击图例凸显字段

    在目前现有的Excel版本环境下,要制作具有交互功能的动态图表,一方面通常会用到可以动态引用数据源的定义名称,另一方面会用到可以对数据字段进行交互筛选的控件。而在新版的Excel 2013中,提供了一个功能强大的加载项PowerView,它类似于一个数据透视表的切片器,可以对数据进行筛选查看,用它可以制作出功能丰富的动态图表。
    阅读全文 »

    作者: chrisfang | 分类: Office2013 | 阅读: 6,463 次浏览 | Tags:
  • WordPress我来了!

    2012-07-20

    2012年7月20日使用WordPress建站!

    准备将新浪博客及其他地方零散发布的技术文章迁移至此,并将此作为以后技术文章的主要发布平台和Office应用开发的支撑平台。

     

    作者: chrisfang | 分类: 站内动态 | 阅读: 9,715 次浏览 | Tags: