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

 
 
 
日一二三四五六
       
       
       
       
       
       

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

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

本吧签到人数:0

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

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 9回复贴,共1页
<<返回excel吧
>0< 加载中...

类型不匹配求解!

  • 只看楼主
  • 收藏

  • 回复
  • 谁先已乘鲤鱼去
  • 平E近人
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
代码如下,求个大神帮忙看看


  • 谁先已乘鲤鱼去
  • 平E近人
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
vb
Option Explicit
Sub ABC()
Dim A As Range
Set A = Worksheets("SHEET1").Range("A1:A100")
A.NumberFormat = "0"
Dim B As Range
Set B = Worksheets("SHEET1").Range("B1:B100")
B.NumberFormat = "0"
Dim C(1 To 100) As Long
Dim D(1 To 100) As Long
Dim E(1 To 100) As Long
Dim F(1 To 100) As Long
Dim G(1 To 100) As Long
Dim H(1 To 100) As Long
Dim I(1 To 100) As Long
Dim J(1 To 100) As Long
For I = 1 To 100
Do
C(I) = Int((5 - 2 + 1) * Rnd + 2)
Loop Until C(I) >= 2 And C(I) <= 5
Do
D(I) = 0
Loop Until D(I) >= 0
Do
E(I) = 0
Loop Until E(I) >= 0
Do
F(I) = 0
Loop Until F(I) >= 0
Do Until C(I) + D(I) + E(I) + F(I) = CLng(A.Cells(I, 1))
D(I) = D(I) + 1
E(I) = E(I) + 1
F(I) = F(I) + 1
Loop
If CLng(B.Cells(I, 1)) < 8 Then
G(I) = 6
H(I) = 8
I(I) = 0
J(I) = 0
ElseIf CLng(B.Cells(I, 1)) >= 8 And CLng(B.Cells(I, 1)) < 10 Then
G(I) = 6
H(I) = 8
I(I) = 10
J(I) = 0
Else
G(I) = 6
H(I) = 8
I(I) = 10
J(I) = 12
End If
If (C(I) * G(I) + D(I) * H(I) + E(I) * I(I) + F(I) * J(I)) / CLng(A.Cells(I, 1)) >= CLng(B.Cells(I, 1)) - 1 And _
(C(I) * G(I) + D(I) * H(I) + E(I) * I(I) + F(I) * J(I)) / CLng(A.Cells(I, 1)) <= CLng(B.Cells(I, 1)) + 1 Then
A.Cells(I, 3) = C(I) '将Long类型赋值给A列
A.Cells(I, 4) = D(I)
A.Cells(I, 5) = E(I)
A.Cells(I, 6) = F(I)
A.Cells(I, 7) = G(I)
A.Cells(I, 8) = H(I)
A.Cells(I, 9) = I(I)
A.Cells(I, 10) = J(I)
End If
Next
End Sub


2026-02-09 17:52:54
广告
不感兴趣
开通SVIP免广告
  • 谁先已乘鲤鱼去
  • 平E近人
    2
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我用的CHATGPT让生成宏,问法:已知A、B两列,求CDEFGHIJ。其中C起始值为2到5之间随机选取。CDEF为大于等于0的整数。C+D+E+F=A。当B<8时G=6,H=8,I=J=0。当8≤B<10时G=6,H=8,I=10,J=0。当10≤B时G=6,H=8,I=10,J=12。且满足(C*G+D*H+E*I+F*J)/A的值在B-1≤B≤B+1。


  • Excel搭档
  • E通百通
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
至少要标一下错在哪句啊,这一串看着多费劲。
另外别把gpt当成神,如果你没有基础,他出来的东西你敢用他就敢坑你。而且就算坑你你都不知道被坑,甚至不知道这个坑什么时候会出来。


  • 菠萝蜜
  • E览无余
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Option Explicit
Sub abc()
 Dim a, i, j, m, n, t
 a = [a1].CurrentRegion.Resize(, 2).Value
 ReDim b(1 To UBound(a), 1 To 8)
 For i = 1 To UBound(a)
  If a(i, 2) < 8 Then
   b(i, 5) = 6: b(i, 6) = 8: b(i, 7) = 0: b(i, 8) = 0
  ElseIf a(i, 2) < 10 Then
   b(i, 5) = 6: b(i, 6) = 8: b(i, 7) = 10: b(i, 8) = 0
  Else
   b(i, 5) = 6: b(i, 6) = 8: b(i, 7) = 10: b(i, 8) = 12
  End If
  If a(i, 1) > 2 Then
   Do
    Do
     b(i, 1) = Int(4 * Rnd) + 2
    Loop Until a(i, 1) >= b(i, 1)
    n = a(i, 1) - b(i, 1)
    For j = 2 To 4
     t = Int(Rnd * (n / 3 * 2))
     b(i, j) = t: n = n - t
     If n >= 0 Then
      If j = 3 Then
       b(i, 4) = n: Exit For
      End If
     Else
      n = a(i, 1) - b(i, 1): j = 1
     End If
    Next
    If (b(i, 1) * b(i, 5) + b(i, 2) * b(i, 6) + b(i, 3) * b(i, 7) _
     + b(i, 4) * b(i, 8)) / a(i, 1) >= a(i, 2) - 1 And _
     (b(i, 1) * b(i, 5) + b(i, 2) * b(i, 6) + b(i, 3) * b(i, 7) _
     + b(i, 4) * b(i, 8)) / a(i, 1) / a(i, 1) <= a(i, 2) + 1 Then Exit Do
    m = m + 1
    If m > 10 ^ 3 Then
     For j = 1 To 4
      b(i, j) = Empty
     Next
     Exit Do
    End If
   Loop
   m = 0
  End If
 Next
 [c1].Resize(UBound(b), UBound(b, 2)) = b
End Sub


登录百度账号

扫二维码下载贴吧客户端

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