虎虎漫画小说

繁体版 简体版
虎虎漫画小说 > > Excel_word_ppt_office使用技巧大全(最新超全完整版)最新章节 > 第 38 章

第 38 章 免费阅读

9%。

(5)由于每次都是用原图缩放,故可取得缩放比例作为参数,再套打其他表格时,即可直接依参数缩放图片。

思路:因为空白表=支票,图片=空白表,所以图片=支票。

该方案已证实可行。

007.宏放在worksheet和sheet及模块中各有什么区别?

解答:放在thisworkbook或sheet中的宏与模块中的宏的主要区别是book或sheet中的过程函数只能是对象所专有的,不能在对象之外的任何地方调用(很显然不能声明Public过程,否则编译报错),而模块中声明Public过程函数可以在任何地方使用。

008.关于excel问题

在excel中如何用公式实现单元格内容递增?

如: AB12

AB13

AB14

.......

AB100

条件是无法确定储存格中的内容的前面有多少个字符,也就是,可能是2个,也可能是3个,或者更多。

解答:為什麼要用公式呢?

如 A1 = AB12 ,只要你向下拉的複制就可以。

公式可參考 (條件是 AB12 不可以是 AB02, 處理 0 為首的數字有困難,亦不可以只有英文字)

A1 = AB12

A2 = LEFT(A1,LEN(A1)-SUM(LEN(A1)-LEN(SUBSTITUTE(A1,{"0","1","2","3","4","5","6","7","8","9"},"")))) & RIGHT(A1,SUM(LEN(A1)-LEN(SUBSTITUTE(A1,{"0","1","2","3","4","5","6","7","8","9"},""))))+1

(A1 = AB12

公式

=LEN(SUBSTITUTE(A1,{"0","1","2","3","4","5","6","7","8","9"},""))

答案看到的是 4 ,但其實它回傳一個數組 {4,3,3,4,4,4,4,4,4,4}

公式

=LEN(A1)-LEN(SUBSTITUTE(A1,{"0","1","2","3","4","5","6","7","8","9"},""))

答案看到的是 0 ,但其實它回傳一個數組 {0,1,1,0,0,0,0,0,0,0}

公式

=SUM(LEN(A1)-LEN(SUBSTITUTE(A1,{"0","1","2","3","4","5","6","7","8","9"},""))) 是將{0,1,1,0,0,0,0,0,0,0} 加總

= 2)

009.给数组公式、VBA爱好者泼点冷水。

数组公式、VBA威力巨大,在某些情形下提高效率非常明显,但各有其弱点。数组公式在大数据的时候,运行速度慢得无法忍受。比如,我日常需要编制得几个报表,原始数据有4-8万行,20——30列,用数组根本无法cāo作。倒是利用数据透视表及其他一些组合功能,可谓神速。而VBA主要适用与日常比较固定的一些工作,对于一些临时xìng工作而言,缺乏灵活xìng,有杀鸡用牛刀之嫌疑。因此,根据我个人多年工作经验的体会,能熟练地灵活运用EXCEL基本功能和常用函数,就可以高效地完成大部分日常工作。

我比较常用地东西有:数据透视表,数据——有效xìng,ctrl+enter,index ,match,indirect,offset,if,vlookup,下拉列表框,绝对引用与相对引用,编辑——选择xìng粘贴(数值、乘除、转置等),图表,条件格式,定义名称,分列,填充等。

相反观点:数据透视表的计算是excel中内置的,同样的计算次数速度与数组公式是一样的,数组公式计算慢有两个因素,一是公式的编写不合理,另一个主要的原因是数组公式要对所有的引用数据进行计算,不管这些数据是否有效。

VBA应该是最灵活的,在VBA中结合数组公式是可以达到最佳目的的,可用VBA先分析出数组公式要用的有效引用区域,在辅助表中进行数组计算(这个速度比用VBA直接分析计算要快得多),再将结果记入需要的单元格中,然后删除辅助表。

其实你说的那些基本cāo作均可用VBA来做的,速度比手工做要快。

010.从式子抽取一小式子的问题?

b1=sum(a1:a10)+(10+20)/4,怎么从中取出(10+20)/4或其结果(即5)?用evaluate、get.cell都不能取出。

解答:定义X=get.formula($B$1)得到B1的公式,再用MID、Right等函数截取

011.or可以用数组应用?

有一个工作表,数据上万行,其中一列是我要分析的数值,数值比如为:0111,0112,0113,0114,0115,0116,0117中的任何一个。我要统计除0111,0113,0115之外的数据。公式:{sum(if(or(sheet!A2:A1111="0111",sheet!a2:a1111="0113",sheet!a2:a1111="0115"),1,0))},可是统计数字和我筛选相加的不一样,用if层层选,可以。请问原因?

解答:数组公式中用*、+代替AND、OR

{sum(if((sheet!A2:A1111="0111")+(sheet!a2:a1111="0113")+(sheet!a2:a1111="0115"),1,0))}

012.countif表达式的格式

请问:我想找A1:A15中,值不为空的数目,用countif命令怎么写呢?

解答1:应为counta(a1:a15)。countif为找a1:a15中,特定值的数目。

解答2:=ROWS(A1:A15)*COLUMNS(A1:A15)-COUNTIF(A1:A15,"")

=ROWS(A1:A15)*COLUMNS(A1:A15)-COUNTBLANK(A1:A15)

解答3:直接用count(a1:a15)不是更好吗!

013.删除字符串中某个字符的函数是什么?删除字符串中某个字符的函数是什么?

举例:字符串“i love you a!"想删除a字面,应该用什么函数实现?还有就是在字符串中某个位置加入某个字符用什么函数呢?

解答:如果有一定的规律,可以用Replace函数。例如:在A1单元格已有的字符串”123467"中加入个5变为“1234567”。可以这样做:=replace(a1,5,,"5")

另一方法:用CONCATENATE函数。

例如:a5单元格里的数据是“asdfhjkl",在另外的单元格了输入下面的函数

CONCATENATE(LEFT(A5,4),"l",RIGHT(A5,4)),得到的结果就是”asdflhjkl",然后用“选择xìng粘贴,粘贴数值”粘贴回a5单元格就可以了。

014.两表合一实例

问题提出:怎样把两个表(有相同的字段)怎样合并成一个表?

思路:用CountIf()函数对表1进行判断,如果其值为0,则表示没以重复,再将表2中和表1不重复的数据复制到表1中,从而实现两表合一。

解题的方法:

Sub dd()

b = Sheets(2).[a1].CurrentRegion.Rows.Count + 1

‘判断表2的行数

For i = 3 To b

a = Sheets(1).[a1].CurrentRegion.Rows.Count + 1

‘判断表1的行数

c = Sheets(2).[a1].CurrentRegion.Columns.Count

‘判断表2的列数

If Application.WorksheetFunction.CountIf(Sheets(1).[b1:b1000], Sheets(2).Cells(i, 2)) = 0 Then

Sheets(2).Range(Sheets(2).Cells(i, 1), Sheets(2).Cells(i, c)).Copy Sheets(1).Cells(a, 1)

‘将表2中与表1不重复的数据复制到表1中

End If

Next

End Sub

015.有没有办法把加载宏内置到Excel文件里?

因为用了 Networkdays 函数,用到了分析工具库,但是还要发给别人,怎么办?

解答:试试在"Thisworkbook"中写如下语句:

Private Sub Workbook_Open()

Application.RegisterXLL Filencom:= _

『加入书签,方便阅读』