ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: wuaijie

[求助] 填入中间空白的位置该采用那种方法

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-9 08:50 | 显示全部楼层
fanyoulin 发表于 2023-4-8 19:47
我只能给你提下建议,因为你这个表没有填充标识,我感觉写不了代码:
1、可以在采购单中添加一列“类型 ...

老师,填充标识能否按照我提到的蔬菜水果,肉类做为易耗品,其他做为耐用品分类了
第二,老师你分析的对,我计划就是把“易耗品”插入到每个星期一。
你看这样能不能写了

TA的精华主题

TA的得分主题

发表于 2023-4-9 09:42 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
wuaijie 发表于 2023-4-8 18:40
那请老师给优化一下,该怎么做,数据表怎么做,请重编一下

文件给你整理了,需要你填写入库的日期。然后再发过来。要不加我好友。

填入空白位置.rar

43.6 KB, 下载次数: 3

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-9 11:24 | 显示全部楼层
根据老师们建议,更改了初始数据工作表,请看是否合理了

根据计划出库生成采购数据填入.rar

102.59 KB, 下载次数: 6

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-9 11:25 | 显示全部楼层
洋务德雷 发表于 2023-4-9 09:42
文件给你整理了,需要你填写入库的日期。然后再发过来。要不加我好友。

老师,根据你的建议我重新制作了数据表,你看可以了么

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-9 11:26 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
fanyoulin 发表于 2023-4-8 19:47
我只能给你提下建议,因为你这个表没有填充标识,我感觉写不了代码:
1、可以在采购单中添加一列“类型 ...

我将数据表按月弄完整了,老师你看这样可以了没?

TA的精华主题

TA的得分主题

发表于 2023-4-9 15:56 | 显示全部楼层
wuaijie 发表于 2023-4-9 11:25
老师,根据你的建议我重新制作了数据表,你看可以了么

为什么还要留出空白的单元格?不是给你调整了数据结构了吗?
而且,题头没必要,起始点就从A1单元格开始,不要空出AB两列来。
先把数据调整好,再说后面你要的东西。

TA的精华主题

TA的得分主题

发表于 2023-4-9 16:00 | 显示全部楼层
Sub hebing()
    Dim sourceSheet As Worksheet
    Dim targetSheet As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim j As Integer
    Dim k As Integer
   
    ' 获取采购单工作表和出库单工作表
    Set sourceSheet = Sheets("采购单")
    Set targetSheet = Sheets("出库单")
   
    ' 清空出库单内容
    targetSheet.Range("B3:D180").ClearContents
   
    ' 将“不易坏的月初采购”数据添加到出库单中
    targetSheet.Range("B3").Value = "不易坏的月初采购"
    targetSheet.Range("C3").Value = "日期"
    targetSheet.Range("D3").Value = "数量"
    lastRow = sourceSheet.Cells(Rows.Count, "B").End(xlUp).Row
    j = 4
    For i = 19 To lastRow
        If sourceSheet.Cells(i, "B").Value = "不易坏的月初采购" Then
            targetSheet.Cells(j, "B").Value = sourceSheet.Cells(i, "B").Value
            targetSheet.Cells(j, "C").Value = DateSerial(Year(sourceSheet.Cells(i, "C").Value), Month(sourceSheet.Cells(i, "C").Value), 1)
            targetSheet.Cells(j, "D").Value = sourceSheet.Cells(i, "D").Value
            j = j + 1
        End If
    Next i
   
    ' 将“蔬菜水果和肉按周采购”数据添加到出库单中
    targetSheet.Range("B52").Value = "蔬菜水果和肉按周采购"
    targetSheet.Range("C52").Value = "日期"
    targetSheet.Range("D52").Value = "数量"
    j = 53
    k = 1
    For i = 19 To lastRow
        If sourceSheet.Cells(i, "B").Value = "蔬菜水果和肉按周采购" Then
            Dim weekStart As Date
            weekStart = DateSerial(Year(sourceSheet.Cells(i, "C").Value), Month(sourceSheet.Cells(i, "C").Value), Day(sourceSheet.Cells(i, "C").Value) - Weekday(sourceSheet.Cells(i, "C").Value, vbMonday) + 1)
            targetSheet.Cells(j, "B").Value = sourceSheet.Cells(i, "B").Value
            
            For k = 1 To 7
                targetSheet.Cells(j, "C").Value = weekStart + k - 1
                targetSheet.Cells(j, "D").Value = ""
                j = j + 1
            Next k
            
            ' 在当前行的前一列中填写数量
            targetSheet.Cells(j - 8, "D").Value = sourceSheet.Cells(i, "D").Value
        End If
    Next i
   
    ' 删除多余的空行
    lastRow = targetSheet.Cells(Rows.Count, "B").End(xlUp).Row
    targetSheet.Rows(lastRow + 1 & ":" & 180).Delete Shift:=xlUp
   
    ' 自动补足空行
    j = targetSheet.Cells(Rows.Count, "B").End(xlUp).Row + 1
    For i = j To 180
        targetSheet.Cells(i, "B").Value = ""
        targetSheet.Cells(i, "C").Value = ""
    targetSheet.Cells(i, "D").Value = ""
Next i

MsgBox "合并完成!"
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-9 21:15 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖最后由 wuaijie 于 2023-4-9 21:38 编辑
selen 发表于 2023-4-9 16:00
Sub hebing()
    Dim sourceSheet As Worksheet
    Dim targetSheet As Worksheet

老师,我试了一下,好像不能实现,逐句看了,以为的水平找不问题出在哪,你到看一下。
我逐行看了下就是b3:d3和b52:d52填了六个 空。

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-4-9 21:24 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2023-4-10 20:56 | 显示全部楼层
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 16:34 , Processed in 0.034925 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表