当前位置:主页 > Office办公 > excel常见问题

excel常见问题

如何获取含有相同字符的字符串中该字符第n次出现的位置?
如何获取含有相同字符的字符串中该字符第n次出现的位置?

Q:有时候,我们需要获取字符串中某字符第n次出现的位置。例如,在单元格A1中的字符串为“xy-01-02”,如何知道字符“–”第2次出现的位置呢?(当然,我们数一下,就可以知道在该字符串的第6位第2次出现了字符“–”)A:我们这里使用VBA代码自定义函数来实现,详细的代码清单如下:FunctionGetNthPos(str, n, separator) As LongDim sp As VariantDim i As Long, num As Longsp = Split(str, separator)If n > UBound(sp) ThenMsgBox “不存在这个位置!”Exit FunctionEnd If

替换excel工作表中图片怎么保持图片位置和大小不变?
替换excel工作表中图片怎么保持图片位置和大小不变?

Q:我原先在工作表中放置了一个图片,现在我想使用新的图片来替换该图片,但是要保持图片的位置和大小不变,如何使用VBA代码实现?A:在VBE中插入一个标准模块,输入如下代码:SubChangePicLoc()On Error GoTo ErrHandleDim blnFlag As BooleanDim shp As ShapeDim dblTop As DoubleDim dblLeft As DoubleDim dblHeight As DoubleDim dblWidth As Double

excel图表怎么合并多个工作簿中的数据
excel图表怎么合并多个工作簿中的数据

我有超过5 个具有相同格式的Excel文件,它们的列标题相同,并且都放置在同一文件夹,有什么快速的方法将它们合并到一个单独的Excel文件的一个工作表中?假设工作簿文件结构如下所示。其中,在文件夹“要合并的工作簿文件”中,有3个示例工作簿文件“测试1.xls、测试2.xls、测试3.xls”,将它们合并到工作簿“合并.xls”中。在“合并.xls”工作簿中,有三个工作表。其中,“设置”工作表中的单元格B2中的数据为每个工作簿中想要合并的工作表名,这里假设每个工作簿中的工作表名相同;单元格B3为要合并的数据开始的行号。在“导入工作簿名”工作表中将放置合并的工作簿的名称。“合并工作表”就是我们要放置合并的数据的工作表。完整的VBA代码如下:‘ 放置导入工作簿名称的工作表

如何将数字金额转换成中文大写金额?
如何将数字金额转换成中文大写金额?

Q:在财务上,经常需要书写人民币大写金额,例如,578.96元,需要写作伍佰柒拾捌元玖角陆分。那么,如何在Excel中实现这样的转换呢?A:使用VBA代码自定义函数来实现,效果如下。详细代码清单如下(代码太长,偷懒的朋友可在本底部发送消息:金额转换,即可获取代码工作簿):正如上文中的视频所演示的,输入完自定义函数的代码后,就可以在工作表中像使用Excel内置函数那样使用该函数了。

如何将excel数据其转换为正方形?
如何将excel数据其转换为正方形?

Q:我怎么知道工作表单元格的默认大小是多少?也就是说,在标准状态下,单元格的长和宽各是多少?如何将其变为正方形?A:在工作表中,当我们将鼠标放置在列之间并变成双向箭头时,按下左键,将会显示单元格的大小,如下和所示,显示单元格的宽度是8.38磅(72像素),高度是13.5磅(18像素)。可以看到,工作表单元格默认为矩形,但看起来很奇怪,行高小于列宽但行高的值却约是列宽的值的1倍。事实上,列宽的1个单位等于标准样式下1个字符的宽度;对于比例字体,使用字符的宽度;如果单元格区域中所有列有相同的宽度,那么ColumnWidth属性返回这个宽度值;如果单元格区域中的列具有不同的宽度,那么ColumnWidth属性返回该区域中第1列的宽度值。好了,现在我们想将工作表中的单元格从默认的长方形转换为正方形,那该如何实现呢?此时,需要以磅为基础的相应的像素值。简单地说,我们可以将列的列宽ColumnWidth(像素)除以宽度Width(磅),然后乘以行的高度Height(磅)的结果等于新的列宽ColumnWidth(像素),循环几次使其Width和Height相同。程序代码如下:SubSquareCells()Dim i As LongDim rng As Range

excel图表是怎么合并多个工作簿中的数据
excel图表是怎么合并多个工作簿中的数据

我们使用代码快速合并超过5 个Excel工作簿文件,然而,如果要合并的工作簿中工作表的名称不相同,但位于每个工作簿的第1个工作表;并且,要在合并后的工作表的第1列中输入相对应的工作簿文件名,以便知道合并后的数据来自哪个工作簿文件。同样,可以使用VBA代码快速解决。多的话不说,先上代码:Sub Combine()‘声明变量Dim fn, eDim ws As WorksheetDim flg As BooleanDim LastR As RangeDim wsName As String‘打开选择文件对话框

如何查找包含通配符的文本?
如何查找包含通配符的文本?

Q:我想查找并使用其它的字符替换工作表单元格文本中的*号,但实际上会替换掉单元格中所有的文本字符,如下图1所示,如何只替换掉*号呢?图1A:由于Excel会把*号当成任意数量的字符,因此在查找时不仅仅是单元格中的*号,还会是单元格中的所有字符。这样,替换掉的不仅仅是单元格中的*号,会替换掉单元格中的所有字符,就像图1中的那样。如果我们在查找时,在*号前加上一个“~”号,那么就会只是找到单元格中的*号,并且在替换时会会正确地替换掉*号,如下图2所示。图2同理,Excel会认为?号代表字符中?号所在位置是任意一个字符。因此,如果只是要查找单元格里文本中的?号,那么在查找时应该在?号前加上“~”号。例如下图3的示例工作表,想将“Gree?Red”中的“?”替换成“n”。

如何统计带分隔符的字符串中不重复的子字符串数?
如何统计带分隔符的字符串中不重复的子字符串数?

Q:某些情况下,我们可能要统计带有分隔符的字符串中不重复的子字符串数。如下所示,我想知道单元格A1中不重复的数字有几个,应该怎么编写公式?A:下面的数组公式可以完成单元格A1的字符串不重复值的统计:=SUM(N(MATCH(TRIM(MID(SUBSTITUTE(A1,”,”,REPT(“”,999)),ROW(INDIRECT(“1:” &LEN(A1)-LEN(SUBSTITUTE(A1,”,”,””))+1))*999-998,999)),TRIM(MID(SUBSTITUTE(A1,”,”,REPT(“”,999)),ROW(INDIRECT(“1:” &LEN(A1)-LEN(SUBSTITUTE(A1,”,”,””))+1))*999-998,999)), )=ROW(INDIRECT(“1:”& LEN(A1)-LEN(SUBSTITUTE(A1,”,”,””))+1))))结果为6。注意,公式输入完成后要按下Ctrl+Shift+Enter组合键。公式解析这么长的公式,一看到可能被吓着了,让我们来看看这个复杂的公式是怎么得来的。上面的公式可以简化为:=SUM(N(MATCH(单元格中的子字符串组成的数组, 单元格中的子字符串组成的数组, )=连续数字组成的数组))其中,生成单元格中的子字符串组成的数组的公式:

excel怎么添加、查找和编辑数据记录
excel怎么添加、查找和编辑数据记录

在Excel中,我已经创建了一个输入数据的用户窗体,用于在工作记录工作表中添加新数据记录。最近,老板提出了新的需求,要通过该用户窗体能够编辑数据记录,增强其功能。这是我们在使用Excel编程时经常会遇到的问题。虽说直接在工作表中添加数据没有什么不好的,但就是有很多人喜欢使用自已设计的界面输入数据,包括我自已。在设计好输入数据界面后,更进一步增强界面的功能,可以查找数据,对找到的数据进行编辑并将修改更新到工作表中。如下所示。用户窗体界面设计存储数据的工作表如下所示。根据工作表数据结构,设计用户窗体如下所示。其中,用于导航的4个标签按钮放置在一个名为fraNavigate的框架控件中。编写代码

如何在不同的页中打印每个学生的成绩?
如何在不同的页中打印每个学生的成绩?

Q:如下图1所示的工作表,我已经按照学生姓名排序,现在想要在不同的页中打印每个学生的成绩数据?图1A:我们介绍使用VBA来隐藏并逐条显示记录,从而实现批量打印。当然,后面的文章中也提到过可以使用筛选达到同样的效果。下面介绍的实现方法,不使用VBA,只使用Excel自身的功能。方法1:使用“分类汇总”将当前单元格置于数据区域中,选取“数据”选项卡中的“分类汇总”命令。在“分类汇总”对话框中,选取“每组数据分页”复选框,如图2所示。图2

共计119条记录 上一页 1.. 6 7 8 9 10 11 12 下一页