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

 
 
 
日一二三四五六
       
       
       
       
       
       

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

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

本吧签到人数:0

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

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 首页 上一页 1 2 3 4 5 6 7 8 9 10 下一页 尾页
  • 532回复贴,共36页
  • ,跳到 页  
<<返回excel吧
>0< 加载中...

回复:Excel 百问百答(不断添加中)

  • 取消只看楼主
  • 收藏

  • 回复
  • 山野雪人
  • 见E勇为
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复:48楼
我的想法是这样的,供你参考,因为Excel不会直接计算你的横轴变化后,纵轴会对应什么值,也就是说它不知道你的Y=f(x)的具体表达式,所以它不可能会给出一个正确的插值,所以第一步你应该找出一个Y=f(x)表达式来,我可以有信心地说,只要你有一组足够多的数据,总可以找到这个表达式出来,当然这要花我不少时间。不过你也可以用线性插值方法找到这些插值,显然精度要差一些。
有了这个表达式,你说的问题就好解决了。
原数据     y     26     22     13    1
         x     1     10     100     1000
         lgx     0     1       2     3
你有了表达式后显然就可以找到等间距的图了
当然还有一个思路,如果你通过插值或方程拟合,你也总可以得到
处理后的数据     y         24     18         5      0.5
                x         5      50      500     5000
               lgx      0.70      1.70     2.70      3.70
         X=lgx-0.7        0      1        2         3
这样你就可以作出y=f(x)或y=f(X)等距离图形来了。



  • 山野雪人
  • 见E勇为
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复:50楼
我在这里的24楼回答了这个问题:
http://tieba.baidu.com/club/7079316/p/3560479


2025-08-14 12:17:08
广告
不感兴趣
开通SVIP免广告
  • 山野雪人
  • 见E勇为
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复:51楼
假设你的这三个数据在19行的1、2、3列,那么可以这样:
Sub a()
Sheet1.Activate
STR1$ = Cells(19, 1)
STR2$ = Cells(19, 2)
STR3$ = Cells(19, 3)
Cells(19, 4) = STR1$ & STR2$ & STR3$
End Sub


  • 山野雪人
  • 见E勇为
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复:54楼
符合21楼的条件,不预回答。


  • 山野雪人
  • 见E勇为
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复:58楼
你用逐语句调试方式运行(F8),然后对照sheet的变化,很快就应该可以理解了。


  • 山野雪人
  • 见E勇为
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复:60楼
替换工作表模块可以参阅:
http://tieba.baidu.com/club/7079316/p/3850710
替换窗体没见报导。


  • 山野雪人
  • 见E勇为
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复:63楼
Sub 排序()
'
     Range("A2:D10").Select
     ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Clear
     ActiveWorkbook.Worksheets("Sheet1").Sort.SortFields.Add Key:=Range("C4:C10") _
         , SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
     With ActiveWorkbook.Worksheets("Sheet1").Sort
         .SetRange Range("A3:D10")
         .Header = xlYes
         .MatchCase = False
         .Orientation = xlTopToBottom
         .SortMethod = xlPinYin
         .Apply
     End With
End Sub



  • 山野雪人
  • 见E勇为
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复:62楼
参阅:
删除指定宏,删除模块\窗体\类
得到指定宏在模块中的起始行号
宏起始行=Documents(ActiveWindow.Document).VBProject.VBComponents("模块名").CodeModule.ProcStartLine("宏名",0)
'vbext_pk_Proc=0,vbext_pk_set=2,vbext_pk_let=1,vbext_pk_get=3
宏总行数=Documents(ActiveWindow.Document).VBProject.VBComponents("模块名").CodeModule.ProcCountLines("宏名",0)
'删除指定宏
Documents(ActiveWindow.Document).VBProject.VBComponents("模块名").CodeModule.DeleteLines 宏起始行,宏总行数
Sub 删除模块及窗体和类()
Dim Vbc As Object
For Each Vbc In Application.ThisWorkbook.VBProject.VBComponents
Debug.Print Vbc.Name, Vbc.Type
Select Case Vbc.Type
Case 1, 2, 3
With Application.VBE.ActiveVBProject.VBComponents
.Remove .Item(Vbc.Name)
End With
End Select
Next
End Sub



2025-08-14 12:11:08
广告
不感兴趣
开通SVIP免广告
  • 山野雪人
  • 见E勇为
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复:68楼
不是本吧的范畴,在这里提问应该很快就有答复的:
http://tieba.baidu.com/f?ct=&tn=&rn=&pn=&lm=&cm=0&kw=%CD%B3%BC%C6%D1%A7&rs2=0&sc=&un=&rs1=&rs5=&sn=&rs6=&myselectvalue=0&word=%CD%B3%BC%C6%D1%A7&tb=on



  • 山野雪人
  • 见E勇为
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复:72楼
用replace


  • 山野雪人
  • 见E勇为
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复:71楼
hi,excelhome 8错。


  • 山野雪人
  • 见E勇为
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复:75楼
看不懂你这种数据百分比的构成。


  • 山野雪人
  • 见E勇为
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复:70楼
你用激活命令就成了当前的工作薄了。


  • 山野雪人
  • 见E勇为
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
回复:80楼
很很多成熟的办法,你自己可以搜搜。
===================================
在Excel中新建一个文件,将其命名为“工资表与工资条”,在工作表“sheet1”中输入并编辑好本单位职工工资总表(如表1所示)后,点击“工具”菜单→“宏”→“宏…”→输入宏名“生成工资条”→创建,输入如下的宏的各行文本,输入完成后保存该宏。将工作表“sheet1”复制为另一个工作表“sheet2”中,使“sheet2”成为当前工作表,执行刚才创建的宏,即可很快将表1所示的工资表转换为表2所示的工资条。
   宏的内容如下:
   Sub 生成工资条()
   Cells.Select
   '选择整个表去掉表格线
   Range("F1").Activate
   Selection.Borders(xlDiagonalDown).Line
   Style = xlNone
   Selection.Borders(xlDiagonalUp).LineStyle = xlNone
   Selection.Borders(xlEdgeLeft).LineStyle = xlNone
   Selection.Borders(xlEdgeTop).LineStyle = xlNone
   Selection.Borders(xlEdgeBottom).LineStyle = xlNone
   Selection.Borders(xlEdgeRight).LineStyle = xlNone
   Selection.Borders(xlInsideVertical).LineStyle = xlNone
   Selection.Borders(xlInsideHorizontal).LineStyle = xlNone
   Rows("2:2").Select
   '选择第2行
   Selection.Insert Shift:=xlDown
    '在第2行前插入一行,保持第2行
   为选中状态
   num=150
   '总人数×3,如工资表中有100人则
   为100×3即num=300
   col=14
   '工资表的栏数,如工资表有17栏则
    'col=17
   num1 = 4
   Do While num1 <= num
   '循环插入空行
   Range(Cells(num1, 1), Cells(num1, col)).Select
   '选中第num1行的第1列到第col列
   Selection.Insert Shift:=xlDown
   Selection.Insert Shift:=xlDown
   num1 = num1 + 3
   Loop
   Range(Cells(1, 1), Cells(1, col)).Select
   Application.CutCopyMode = False
   '剪切复制模式无效
   Selection.Copy
   '复制选择区域
   Range("A2").Select
   '选择A2单元格
   ActiveSheet.Paste
   '从A2单元格起粘贴内容
   num2 = 5
   Do While num2 <= num
   '循环插入标题行
   Range(Cells(1, 1), Cells(1, col)).Select
   Application.CutCopyMode = False
   Selection.Copy
   Cells(num2, 1).Select
   ActiveSheet.Paste
   num2 = num2 + 3
   Loop
   Range(Cells(2, 1), Cells(3, col)).Select
   Application.CutCopyMode = False
   Selection.Borders(xlDiagonalDown).LineStyle
    = xlNone
    '定义表格边框线、内线样式
   Selection.Borders(xlDiagonalUp).LineStyle = xlNone
   With Selection.Borders(xlEdgeLeft)
   .LineStyle = xlDouble
   .Weight = xlThick



2025-08-14 12:05:08
广告
不感兴趣
开通SVIP免广告
  • 山野雪人
  • 见E勇为
    7
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
   .ColorIndex = xlAutomatic
   End With
   With Selection.Borders(xlEdgeTop)
   .LineStyle = xlDouble
   .Weight = xlThick
   .ColorIndex = xlAutomatic
   End With
   With Selection.Borders(xlEdgeBottom)
   .LineStyle = xlDouble
   .Weight = xlThick
   .ColorIndex = xlAutomatic
   End With
   With Selection.Borders(xlEdgeRight)
   .LineStyle = xlDouble
   .Weight = xlThick
   .ColorIndex = xlAutomatic
   End With
   With Selection.Borders(xlInsideVertical)
   .LineStyle = xlDash
   .Weight = xlThin
   .ColorIndex = xlAutomatic
   End With
   With Selection.Borders(xlInsideHorizontal)
   .LineStyle = xlDash
   .Weight = xlThin
   .ColorIndex = xlAutomatic
   End With
   Selection.Copy
   Range(Cells(5, 1), Cells(6, col)).Select
   Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=False
   '接上行删除上行尾的连字符
    _,复制表格线样式
   num3 = 8
   Do While num3 <= num
   '循环复制表格线样式
   Range(Cells(num3, 1), Cells(num3 + 1, col))
   .Select
   Selection.PasteSpecial Paste:=xlFormats, Operation:=xlNone, SkipBlanks:= _
    False, Transpose:=False
   num3 = num3 + 3
   Loop
   Rows("1:1").Select
   '删除多余的一行
   Selection.Delete
   End Sub
以后每月要打印工资表与工资条时,只需将“工资表与工资条”文件打开,修改好工作表“sheet1”中的当月的工资总表数据后将其复制为工作表“sheet2”,并使“sheet2”成为当前工作表,执行宏“生成工资条”即可。



登录百度账号

扫二维码下载贴吧客户端

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