Excel VBA代码,用于将数据从一张图纸复制到另一张图纸
我正在努力实现以下目标:Excel VBA代码,用于将数据从一张图纸复制到另一张图纸,vba,excel,Vba,Excel,我正在努力实现以下目标: 记录每天最忙的时间(即最高客户数量),并将其详细信息(客户数量、花费金额、平均花费时间)记录到第二个电子表格中 在第二个电子表格中,每次都会添加一个新列。它将只记录每天最繁忙的时刻 Sub DailySales() Dim dailySht As Worksheet 'worksheet storing latest store activity Dim recordSht As Worksheet 'worksheet to store the hi
- 记录每天最忙的时间(即最高客户数量),并将其详细信息(客户数量、花费金额、平均花费时间)记录到第二个电子表格中李>
- 在第二个电子表格中,每次都会添加一个新列。它将只记录每天最繁忙的时刻
Sub DailySales() Dim dailySht As Worksheet 'worksheet storing latest store activity Dim recordSht As Worksheet 'worksheet to store the highest period of each Day Dim lColDaily As Integer ' Last column of data in the store activity sheet Dim lCol As Integer ' Last column of data in the record sheet Dim maxCustomerRng As Range ' Cell containing the highest number of customers Dim maxCustomerCnt As Long ' value of highest customer count Set dailySht = ThisWorkbook.Sheets("Supermarket Data") Set recordSht = ThisWorkbook.Sheets("Record Data") With recordSht lCol = .Cells(1, .Columns.Count).End(xlToLeft).column End With With dailySht lColDaily = .Cells(1, .Columns.Count).End(xlToLeft).column maxCustomerCnt = Application.Max(.Range(Cells(2, 1), Cells(2, lColDaily))) Set maxCustomerRng = .Range(.Cells(2, 1), .Cells(2, lColDaily)).Find(What:=maxCustomerCnt, LookIn:=xlValues) If Not maxCustomerRng Is Nothing Then maxCustomerRng.EntireColumn.Copy recordSht.Cells(1, lCol + 1) End If End With Set maxCustomerRng = Nothing Set dailySht = Nothing Set recordSht = Nothing End Sub
Customer data 7:00:00 AM 7:30:00 AM 8:00:00 AM 8:30:00 AM 9:00:00 AM
Number of customers 33 37 110 250 84
Amount spent 65 50 70 85 60
Average time spent 12 10 8 17 10
有人能帮我找出代码的错误吗?而不是
.Range(Cells(2, 1), Cells(2, lColDaily))
试一试
而不是
.Range(Cells(2, 1), Cells(2, lColDaily))
试一试
Mrigs注释正确,请使用
.Range(.Cells(2,1),.Cells(2,lColDaily))
正如解释(因为错误非常常见):单元格(无前导点)指的是活动工作表.cells
(带点)在您的案例中引用了with
-语句的工作表,您可以改为编写dailySht.cells
因此,在您的声明中,您要求工作表的范围dailySht
,该范围由活动工作表中的单元格定义(很可能是不同的工作表),这是不可能的,并且会引发您看到的错误。Mrigs注释正确,请使用.Range(.cells(2,1),.cells(2,lColDaily))
正如解释(因为错误非常常见):单元格(无前导点)指的是活动工作表.cells
(带点)在您的案例中引用了with
-语句的工作表,您可以改为编写dailySht.cells
因此,在您的声明中,您要求工作表的范围dailySht
,该范围由活动工作表中的单元格定义(很可能是不同的工作表),这是不可能的,并且会引发您看到的错误。就是这样。谢谢有没有办法防止数据重复?也就是说,一天内不记录多个数据?@aab-这是完全不同的问题。我建议你接受对你有帮助的答案,然后再问一个新问题,以此结束问题。新问题也会吸引更多的人,而不仅仅是我们两个。谢谢。@aab-请在这里提及你新问题的链接,这样我也可以看一看。这是我新问题的链接,就是它。谢谢有没有办法防止数据重复?也就是说,一天内不记录多个数据?@aab-这是完全不同的问题。我建议你接受对你有帮助的答案,然后再问一个新问题,以此结束问题。新问题也会吸引更多的人,而不仅仅是我们两个。谢谢。@aab-请在这里提及你新问题的链接,这样我也可以看一下。这是我新问题的链接,我不知道。谢谢你的解释,我不知道。谢谢你的解释。
.Range(.Cells(2, 1), .Cells(2, lColDaily))