网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
11月24日漏签0天
excel吧 关注:281,824贴子:1,555,290
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 首页 上一页 1 2 3 4 下一页 尾页
  • 51回复贴,共4页
  • ,跳到 页  
<<返回excel吧
>0< 加载中...

回复:Excel可以做什么,Excel工作笔记[全员乱入]

  • 取消只看楼主
  • 收藏

  • 回复
  • RuiWangChina
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
分享我下自己的工作习惯, 因为经常会同时打开很多程序或者报表, 所以我的任务栏和别人不同, 不是在屏幕的下方, 而是右边, 宽度为4格. 大家可以试试看. 到现在为止, 工作中只遇到一个和我类似的, 他放在了左边. 不过后来好像被我影响了.


  • RuiWangChina
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
说说计算模式. 大家平时都怎么用? 包括系统设置的, 和vba.


2025-11-24 02:14:38
广告
不感兴趣
开通SVIP免广告
  • RuiWangChina
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
计算模式分为自动计算和手动计算,手动计算在数据量大公式多的时候异常有用,不过要清楚你在做什么,否则计算结果可能错误。设置成手动计算以后,可以通过如下方法进行重新计算
1 shift + f9, 重新计算当前表
2 f9 重新计算
3 ctrl + shift + f9


  • RuiWangChina
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
无所事事一整天,大周末的晚上在考虑要不要加班。今天不会做什么新的东西了。
继续说说自己的习惯吧。
我有一个很特殊的习惯,在写vba代码的时候,尽量不用copy,paste,pastesepcial一类的东西,一般都是range直接赋值,或者公式。一是因为速度,而是因为怕和别的东西冲突,有的时候需要循环的话,就会影响同时做其他的事情或者同时运行的其他宏。


  • RuiWangChina
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
@胡须客 方便的话你也随便留点什么吧,比如数组公式是怎样炼成的。我这方面脑子不灵活。


  • RuiWangChina
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
放一段简单的循环一个文件夹下所有文件的方法.
Sub LoopAllFolders()
Dim sFileName As String
Dim sPath As String
Dim sExtention As String
sPath = "G:\aa_rates\OutCADIS\"
sextension = "xlsx"
sFileName = Dir(sPath & "*." & sextension)
Do While Len(sFileName) > 0
Workbooks.Open sPath & sFileName
***********************
Workbooks(sFileName).Close
sFileName = Dir()
Loop
End Sub


  • RuiWangChina
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
接上回, 循环找出所有的子文件夹, 套用到一起就可以找到所有的子文件夹下的所有文件.
Sub loopAllFolders()
Dim sPath As String, sFolders As Variant
Dim i As Integer, j As Integer
Dim f, fs, sf
Set fs = CreateObject("Scripting.FileSystemObject")
sPath = "n:\movie\"
sFolders = Array(sPath)
lNextFolder:
Set f = fs.GetFolder(sPath)
For Each sf In f.SubFolders
j = j + 1
ReDim Preserve sFolders(j)
sFolders(j) = sPath & sf.Name & "\"
Next
If i < j Then
i = i + 1
sPath = sFolders(i)
GoTo lNextFolder
End If
For i = 0 To j
*****************
Next i
End Sub


  • RuiWangChina
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼


2025-11-24 02:08:38
广告
不感兴趣
开通SVIP免广告
  • RuiWangChina
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Ok, 发现了这个 Reference - Microsoft Forms 2.0 Object Library. 你们装了么?


  • RuiWangChina
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
在你的文件里边添加一个activex control -> Microsoft Web Browser
然后运行下边的代码看看
Sub test()
Dim i As Integer
Dim aFields As Object
Set aFields = ActiveSheet.WebBrowser1.Document.GetElementsByTagName("Input") For i = 1 To aFields.Length - 1
Cells(i, 1) = aFields(i).Value
Next
End Sub
Sub WebGoto()
ActiveSheet.WebBrowser1.Navigate "baidu.com"
End Sub


  • RuiWangChina
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
推荐一下雪儿的动画教程. @雪儿浪漫想 这个怎么可以没有呢?
链接如下
http://tieba.baidu.com/p/980877530
推荐理由, 动画教程简单易懂, 有一些特殊的用法比vba还要有效. 基础操作的神迹.
目录
已知和求加数
把不同单元格的内容合并起来
让合并单元格都有内容
批量合并相同内容的单元格
按颜色排序
行号列标变模样了
工资条
工资条(换个角度)
工资条(记录中有空单元格)
高级筛选之“和”及“或”
高级筛选之表一有表二无
高级筛选之表一、表二都有
有隐藏行的序号填充
大于100的替换为星号
空白单元格的序号
将自定义格式的数值转换成文本格式
巧用最适合的行gao
批量隐藏金额列
生成备份文件
批量加等号
选定0以外的数据填充颜色(一)
选定0以外的数据填充颜色(二)
真空及假空均替换为0
通过查找格式取消误选区域


  • RuiWangChina
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
这几天工作太忙, 没有做什么新的东西, 今天在加班前留点东西吧。
单元格引用(单个单元格)
这应该是基础的基础,明白了这个以后对灵活运用Excel有很大的帮助。
单元格直接引用通常有两种形式。一种是大家常见的A1,还有一种是R1C1,一般用过宏的人都应该见过。两种格式其实没特殊区别,而且Excel都可以接受,不过系统默认的是第一种。
A1 表示 列A行1 的单元格
R1C1 表示 第1行第1列 的单元格
区别在于一个用字母表示列,一个用数字,各有所长。
说到这里介绍下绝对引用和相对引用。简单的来说,如果你复制了一个公式到另外的一个位置,那么公式引用的单元格会自动发生变化,规则如下。
如果B2的公式为 =A1, 那么如果你复制该单元格,粘贴到C3的话,C3公式会自动变成 =B2
即 =A1 所在单元格向下一行,向右一行 =B2
这就是普通的相对引用,绝对引用就是在行或列前添加一个$符号,那么复制粘贴的时候对应的行或者列就不会移动。如上边的例子
B2 = A1 复制到C3 = B2
B2 = $A1 复制到C3 = $A2
B2 = A$1 复制到C3 = B$1
B2 = $A$1复制到C3 = $A$1
有的时候因为相对引用,复制粘贴的时候会出现#REF的情况,如B2为=A1,复制B2到B1的时候因为不存在A0的情况,所以就会变为#REF.
这是对于A1的用法,R1C1的语法有些不同
R1C1为绝对引用,相对引用的方法是用[]把数字括起来,无数字表示当前行或者列
RC1表示本行的第一列
R1C1表示第一行第一列
R[1]C1表示下一行第一列
R[-1]C[1]表示上一行下一列
如果在Excel单元格中利用这种方式,通常需要用到Indiect(,0)函数。
简单举例RC和INDIRECT的一个用法,我们做一个公式来将所在单元格左边的内容变成大写。
=UPPER(INDIRECT("RC[-1]",0))
这个公式可以被复制到任何地方,都可以起作用,不需要知道所在单元格的位置。贴吧经常有人上图不上坐标的,有很多高手迫不得已只好这样给公式。
RC在vba中的用途广泛一点,个人的习惯是直接对一个区域的单元格给出公式,这样的话有两个好处,一不用复制公式,个人不喜欢在vba里边用复制功能因为调用系统资源有的时候会引起冲突导致出错,二,在手动计算的情况下,区域输入的公式都会被计算,而不需要做重新计算来获取结果,在数据或公式量大的情况下可以节约时间。因为是对于一个区域进行操作,输入单元格的坐标不是唯一的,那么用A1的这种方法来考虑相对位置就要麻烦些,RC方法更为直观。
先写到这里,曾经给几个朋友做过基础的Excel培训,这就是当时的第一讲的内容。欢迎大家对此进行填充或纠错,能够让更多的初学者掌握基础少走弯路。


  • RuiWangChina
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
说说晚上加班的主要内容,主要是验证一套系统是否正常工作。
现有的计算是在Excel上边计算的,通过一些美元和其他货币如欧元的金融产品(cash, interbank bill, futures, swaps),通过bootstrap来建立曲线(curve), 然后通过(fx spot and forward, cross currency basis swaps) 来计算出一年至20年的远期外汇汇率。
这部分是通过行内开发的Excel addins来完成的,希望以后自己可以开发一个出来。
现在要将这部分放到一个系统中去作,我就是要比对中间数据的不同,找出原因,然后想办法修正。


  • RuiWangChina
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
VBA 调错方法.
很多来贴吧问问题的尤其是刚接触VBA的朋友一旦遇到vba不工作, 就不知道该怎么办了, 上来求救, 也说不出个所以然. 大家想帮忙也不方便.下边介绍下vba环境中常见的几种调试方法.
默认的情况下vba如果出错, 会弹出窗口提示错误信息, 给出的信息对于纠错是非常关键的. 同时, 光标也会自动跳到处的行, 便于查错.
以下的三个语句是常见的设置vbe(vba的环境)对于错误的处理方式.
On Error Resume Next 如果出错, 不提示, 忽略此行, 执行下一行. (不建议, 潜在风险高)
On Error GoTo lLable 如果出错, 跳转到定义的标签lLable处 (不建议, 通常在特殊情况下使用)
On Error GoTo 0 默认设置, 通常来说是不得已使用上边的设置以后重新将设置改回来
如前边所说, 在出现错误的时候, 如果是默认设置系统会提示错误信息. 其实vba的错误信息通常只有几种, 对象或者变量没有找到, 赋值错误, 上下标越界, 文件没找到等等, 简单的来说就是系统没得到她想要的, 虽然没有直接告诉你为什么, 不过已经给了你提示, 有了提示, 下边的工作就是找原因了. vba本身提供了多种方法来监视程序的运行, 下边一一介绍. (个人用的是英文版, 所以下边请以英文为准, 中文多是凭记忆和猜测, 如有错误请指正)
1. 本地窗口 Local: 通过View 视图 -> Local 本地窗口 来开启. 在vba运行时会显示当前程序定义的变量. 无需设置, 简单易用, 但是内容是固定的, 不可手动添加, 无法看到非定义的变量
2. Watch 窗口: 通过View 视图 -> Watch 来开启, 需要手动输入想观察的变量, 可以在任何规定的时候监视制定的变量或表达式. 缺点是需要一一手动添加.
3. Immediate 立即窗口, 通过View 视图 -> Immediate 来开启, 一个类似于命令行或DOS的窗口, 可以在这里输入任何程序或者表达式, 回车后代码立刻生效, 如果要查询变量, 可以通过输入 ? + 变量来获得 如 ? thisworkbook.Name. 缺点是每次需要回车,或者输入代码才可以获得信息,只能够监视数值,不能够查看对象的结构,但是非常灵活,可以程序运行一半的时候临时给变量赋值,也可以得到一些自定义的function的计算结果,这是local和watch不具备的.
想要在程序运行中获得信息,那么通过Local和Watch以及Immediate的话,就需要在某一部暂停程序,通常有3种做法.
a, 系统出错自动暂停 (大家最怕看到的)
b, 代码输入 stop 程序运行到这一步的时候会停止,可通过F5继续 (可保存)
c, 通过点击代码行最左边的边框来设置断点 (不可保存)
(几种运行代码的方式,F5自动运行,F8一行一行运行包括调用的代码,Shift+F8一行一行运行,如遇到调用其它的代码也认为是一行,执行到本程序的下一行)
有的时候大家可能不像要暂停程序,那如何来了解程序的运行情况呢,通常有如下三种方法。
4. debug.print 会在immediate窗口显示后边接的表达式的内容相当于上边的 ? thisworkbook.Name 的用法,对于调试多循环的程序很有帮助,信息只会显示在vbe的immeidate的窗口中,如果不开vbe窗口那么信息是隐藏的,可以不让用户看到.
5. Application.StatusBar = "Msg",在系统的状态栏中显示信息。用户可以看到,了解到程序运行的状况,不需要打开vbe窗口.(Application.StatusBar = False,可以将状态栏的控制权交回给系统)
6. 系统输出,常见的方式是 MsgBox "Msg" 系统会弹出窗口,提示信息,点击确定前会中断程序。也有其他的做法,比如在某个sheet中输出数据等等。
这三种用法和immediate一样,都有共同的缺点,不能够监视对象,或者整个数组。只对单一的数值起作用。


2025-11-24 02:02:38
广告
不感兴趣
开通SVIP免广告
  • RuiWangChina
  • 小吧主
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
@青水蛙鸣
Sub test()
Dim i As Integer
Cells(1, 1).Select
For i = 1 To 99
Call FindRest(i, 500, "")
Next i
End Sub
Sub FindRest(ByVal iStart As Integer, ByVal iTotal As Integer, ByVal sNum As String)
Dim i As Integer
If iStart > iTotal Then Exit Sub
sNum = sNum & "+" & iStart
If iStart = iTotal Then
Selection = sNum
Selection.Offset(1, 0).Select
Exit Sub
End If
For i = iStart To iTotal
Call FindRest(i + 1, iTotal - iStart, sNum)
Next i
End Sub


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 首页 上一页 1 2 3 4 下一页 尾页
  • 51回复贴,共4页
  • ,跳到 页  
<<返回excel吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示