立即注册! 找回密码?

用户名

密  码

您所在的位置: 首页 > 软件论坛 > Office办公应用论坛 > VBA实用代码(欢迎接龙)
版主: 罗刚君 版副: 暂无 嘉宾: 红池雪牛 L~wu ueu
返回列表
浏览:51811 回复:141 VBA实用代码(欢迎接龙) [复制本帖链接]
  • 用户名:tennicse
  • 头 衔:太平洋四星上将
  • 积 分:33922
  • 贡 献:5890
  • 精 华:55
  • 注 册:2005-08-28
Re:[cchray,63楼]
以下是引用 cchray 在63楼的发言:
高手请教

Xn+1=4sin(Xn-2.5)产生一个随机序列{Xn}
当Xn>2.5/3 Yn=1
否则Yn=0  
0,1组成伪随机序列{Yn}
WORD原行间距为D,行数为N,n与n+1行间距为L(n)
for n=1 to  N
若Yn=1  L(n)为D+&
Yn=0    L(n)为D
请问VBA怎么编程啊?


我这几天一直在考虑怎样获得一个文档的行数,谁能帮我?
  • 用户名:PCclub网友
  • 头 衔:太平洋舰队新兵
  • 积 分:6
  • 贡 献:15
  • 精 华:0
  • 注 册:2006-05-05
Re:[奇耘天,65楼]
N = ActiveDocument.BuiltInDocumentProperties.Item("number of lines").Value    '统计行数
  • 用户名:tennicse
  • 头 衔:太平洋四星上将
  • 积 分:33922
  • 贡 献:5890
  • 精 华:55
  • 注 册:2005-08-28
Re:[cchray,66楼]
出差在外,等回去试试看,嘿嘿。
  • 用户名:PCclub网友
  • 头 衔:太平洋舰队新兵
  • 积 分:6
  • 贡 献:15
  • 精 华:0
  • 注 册:2006-05-05
求救高手,这是我的毕业设计--VBA编程,轻高手门尽量帮帮忙

Xn+1=Asin2(Xn-B)
A=4,B=2.5,
给定该方程的初值X0,进行迭代运算,生成一组伪随机序列{Xn}
判断迭代值Xn的大小:若Xn.>2.5A/3,则取Yn=1;否则取Yn=0,由此得到一组由0、1组成的伪随机序列{Yn}
假定文本正文普通行间距为D,总行数为N,第n行与n+1行的间距记为L(n)。生成长度为N-1的伪随机序列{Yn}。 
For   n=1  to  N
若Yn =1,则使行间距L(n)为D+δ; 
若Yn =0,则使行间距L(n)为D;
end  for
其中δ为某一约定的改动值,其大小以不引起人可感知的变动为原则。

  • 用户名:tennicse
  • 头 衔:太平洋四星上将
  • 积 分:33922
  • 贡 献:5890
  • 精 华:55
  • 注 册:2005-08-28
最后由 奇耘天 于 2006-05-13 11:34:12 修改
Sub Test()
    Dim X As Single
    Dim Y As Integer
    Dim i As Integer
    Const D = 1
    Const delta = 0.5
    
    X = 0.5
    Selection.HomeKey wdStory                   '光标移动到文章起始
    For i = 1 To ActiveDocument.BuiltInDocumentProperties.Item("number of lines").Value '统计行数
        X = 4 * Sin(X - 0.25)                   '迭代X
        If X > 2.5 / 3 Then                     '计算Y
            Y = 1
        Else
            Y = 0
        End If
        Selection.EndKey wdLine, wdExtend      '选定一行
        Selection.ParagraphFormat.LineSpacing = LinesToPoints(D + Y * delta)    '设定行间距
        Selection.MoveRight wdCharacter, 1    '光标定位到下一行首
    Next
End Sub
 
本文于2006-05-13 11:34:12.133被 奇耘天 修改过。这是本帖的第1次修改。
  • 用户名:PCclub网友
  • 头 衔:太平洋舰队新兵
  • 积 分:6
  • 贡 献:15
  • 精 华:0
  • 注 册:2006-05-05
Sub Macro1()
Dim N As Long
Dim i As Integer
Dim A As Double
Dim B As Double
Dim C As Double
Dim x() As Double
Dim y() As Byte
A = 4
B = 2.5
N = ActiveDocument.BuiltInDocumentProperties.Item("number of lines").Value    '统计行数
ReDim x(N - 1 + 5000)
ReDim y(N - 1)             ' 则将数组{Yn}设为长度为N的数组   使用动态数组
   
x(0) = Val(InputBox("请输入初值X0:"))          '设置初值

Selection.HomeKey wdStory                '光标移动到文章起始
x(1) = A * Sin(x0 - B) * Sin(x0 - B)

For i = 1 To N + 4998
C = Sin(x(i) - B)
x(i + 1) = A * C * C           '迭代{Xn}
Next i
                     
For i = 1 To N - 1
If x(i + 5000) > 2.5 * A / 3 Then               '{Xn}舍弃前5000个并判断迭代值{Xn}
y(i) = 1
Else
y(i) = 0
End If
      ActiveDocument.Content.InsertAfter Text:=y(i)                   '输出{Yn}序列
      Selection.MoveDown Unit:=wdLine, Count:=2, Extend:=wdExtend     '从开始选择2行,若选3行。则Count:=3,依此类推。
      Selection.ParagraphFormat.LineSpacingRule = wdLineSpaceExactly
      Selection.ParagraphFormat.LineSpacing = 16 + y(i) / 2         '设定行间距
      Selection.MoveDown Unit:=wdLine, Count:=1                     '光标下移1行
    
    Next i
    End Sub

上面是我做的根据0.1序列改变行间距的代码,但是实际改变行间距的效果和0.1序列有出入,哪位高手可以帮帮忙啊。
  • 用户名:PCclub网友
  • 头 衔:太平洋舰队新兵
  • 积 分:7
  • 贡 献:21
  • 精 华:0
  • 注 册:2006-05-24
在WORD中假设有10页内容,前面3页不要页眉,页脚编码为:I II III;
后面7页有页眉,页脚编码为1 2 3 4  5 6 7;这样的操作怎么完成?
  • 用户名:PCclub网友
  • 头 衔:太平洋舰队新兵
  • 积 分:83
  • 贡 献:46
  • 精 华:0
  • 注 册:2004-08-25
大家都写过不少excel的技巧了,大家有没将这些技巧用宏来分折一下?
比如,选区域"a1:d100"域填入"好",然后按ctrl+enter,就能得到一个区域的相同内容,
vb代码得到:
    Range("A1:d100").Select
    Selection.FormulaR1C1 = "好"

而不必用for...each 来历遍填写这些格子.
  • 用户名:PCclub网友
  • 头 衔:太平洋舰队新兵
  • 积 分:34
  • 贡 献:17
  • 精 华:0
  • 注 册:2004-09-08
有个问题想请教一下高手,我现在有个问题,如何实现Excel表中时间的相加,如下面的表中时间
1小时3分4秒
24分56秒
1天3分56秒
在excel表怎么样实现相应时间的相加,如上面三个时间,相加,结果是
1天1小时31分56秒
  • 用户名:PCclub网友
  • 头 衔:太平洋舰队新兵
  • 积 分:2
  • 贡 献:6
  • 精 华:0
  • 注 册:2006-06-14
我在工作中,常要复制链接到Excel中,总要右击,选择性粘贴,文本,是不是可以用VBA或宏做到只用一个快揵键做到?
返回列表

浏览过的板块

PConline联想家庭云中心 终结者B B520 B320 B325