20170528xlVBA凑数一例

Public Sub MakeUp()

    Dim Sht As Worksheet
    Set Sht = ThisWorkbook.Worksheets("设置")
    Dim Total As Double
    Dim iMin As Double, iMax As Double
    Dim RndNum As Long
    Dim RndRow As Long
    Dim Index As Long
    With Sht
        Application.Intersect(.Range("C:C"), .UsedRange.Offset(1)).ClearContents
        Total = .Range("B2").Value
        iMin = .Range("B3").Value
        iMax = .Range("B4").Value
        Index = 1
        ‘初次分配
        Do While Total > iMax
            Index = Index + 1
            RndNum = iMin + Rnd() * (iMax - iMin)
            .Cells(Index, 3).Value = RndNum
            Total = Total - RndNum
        Loop

        ‘产生剩余

        If Total >= iMin Then
            .Range("B5").Value = Index
            Index = Index + 1
            .Cells(Index, 3).Value = Total
        Else
            ‘剩余不足2900的 再次随机分配
            Do While Total > 0
                RndRow = Rnd() * (Index - 2) + 2
                Delta = iMax - .Cells(RndRow, 3).Value
                If Total > Delta Then
                    RndNum = Rnd() * (Delta)    ‘保证不会超过3500
                    .Cells(RndRow, 3).Value = .Cells(RndRow, 3).Value + RndNum
                    Total = Total - RndNum
                Else
                    .Cells(RndRow, 3).Value = .Cells(RndRow, 3).Value + Total
                    Total = 0
                End If
            Loop
             .Range("B5").Value = Index
        End If
           ‘If Now > #10/1/2017# Then Application.Intersect(.Range("C:C"), .UsedRange.Offset(1)).ClearContents
    End With
    Set Sht = Nothing
End Sub

  

时间: 2024-11-13 03:50:38

20170528xlVBA凑数一例的相关文章

Python Socket 编程——聊天室演示样例程序

上一篇 我们学习了简单的 Python TCP Socket 编程,通过分别写服务端和client的代码了解主要的 Python Socket 编程模型.本文再通过一个样例来加强一下对 Socket 编程的理解. 聊天室程序需求 我们要实现的是简单的聊天室的样例,就是同意多个人同一时候一起聊天.每一个人发送的消息全部人都能接收到,类似于 QQ 群的功能,而不是点对点的 QQ 好友之间的聊天.例如以下图: 图来自:http://www.ibm.com/developerworks/linux/tu

python+selenium+unitest用例失败重运行

经过多次研读和调试unittest代码,后来发现一个也可以重运行setUp()和dearDown()的解决办法,那就是修改源码,我们重新建一个模块套件类来覆盖原来的TestSuite类 实例代码: [python] view plain copy class Suit(unittest.TestSuite): def run(self, result, debug=False): failcount = 1#失败总运行次数 class_num = 1 topLevel = False if ge

多线程下的单例-double check

话不多说直接上代码: public sealed class Singleton { private static Singleton _instance = null; // Creates an syn object. private static readonly object SynObject = new object(); Singleton() { } public static Singleton Instance { get { // Double-Checked Lockin

ADF Faces导出Excel文件【附样例工程】

本文提供一个基于ADF Face组件开发样例工程,工程的实现过程分为3个部分以应对Excel导出开发中常见的处理. 1.空模版文件下载:将Excel文件视为普通文件提供下载操作. 2.数据文件输出,将数据内容输出为Excel文件,目标文件尽在服务端内存中存在,这种方式需要对Excel文件的内容处理,需要引入响应的类库. 3.模版文件填充数据后下载,基于服务端的物理文件为模板,将业务数据填入约定位置后提供下载,在实现方面需要为工作簿对象指定源文件输入流,并完成后续内容处理. 实现的基本思路,由AD

华为Huawei Honor6 荣耀6 开机卡住不进系统恢复一例

Huawei Honnor6 荣耀6 开机卡住不进系统无损镜像一例 昨天接到我们客户一台華為Honnor6 荣耀6,开机卡屏,进不了系统,要求恢复数据.如题 在我们UFED的帮助下,最后手机无损取得镜像,芯片完好无损,数据也完无损!Thats amazing! 各位有需要的可以联系我!微信17701607488 网址https://shop110840885.taobao.com/ -----

单例设计模式

一:单例设计模式的定义 单例设计模式,顾名思义,就是在整个程序运行过程中,只向外界提供一个对象,这样做可以避免资源的浪费,例如 我们打开回收站或者ppt时,只会启动一个窗口. 单例模式的java实现: 1:饿汉式 1 /** 2 * 3 */ 4 package com.hlcui.singleton; 5 6 /** 7 * @author Administrator 饿汉式单例类 8 */ 9 public class SingletonDemo { 10 // 1:内部创建一个对象 11

java单例类/

java单例类  一个类只能创建一个实例,那么这个类就是一个单例类 可以重写toString方法 输出想要输出的内容 可以重写equcal来比较想要比较的内容是否相等 对于final修饰的成员变量 一但有了初始值,就不能被重新赋值 static修饰的成员变量可以在静态代码块中 或申明该成员时指定初始值 实例成员可以在非静态代码块中,申明属性,或构造器中指定初始值 final修饰的变量必须要显示初始化 final修饰引用变量不能被重新赋值但是可以改变引用对象的内容分(只要地址值不变) final修

Android高级控件(五)——如何打造一个企业级应用对话列表,以QQ,微信为例

Android高级控件(五)--如何打造一个企业级应用对话列表,以QQ,微信为例 看标题这么高大上,实际上,还是运用我么拿到listview去扩展,我们讲什么呢,就是研究一下QQ,微信的这种对话列表,我们先看一个传统的ListView是怎么样的,我们做一个通讯录吧,通讯录的组成就是一个头像,一个名字,一个电话号码,一个点击拨打的按钮,既然这样,那我们的item就出来了 call_list_item.xml <?xml version="1.0" encoding="ut

《编写有效用例》阅读笔记之二

基 于数据库操作的小用力称为CRUD用例,每个小用例都表达了单独需求,在处理这种用例是会有两种不同的方法,可以将其分离或者先使用单个管理实体用例对其 处理.在提取系统用例时或有许多用例大致相同,对此可能会建立一种通用搜索机.用例每个目标步骤的命名类似于编程语言中的子过程调用,而且用例是有人而不 是计算机使用.搜索任何东西都会有相同的步骤,对此为了方便操作我们可以建立一个参数化用例,为每个用例起一个别名.然后将别名数据值划分为三个不同的精 度级别,可以在一定程度上简化用例描述. 当对业务过程进行建