簡體   English   中英

Excel 的問題 - 第三方是否篡改了我的計算機?

[英]Problems with Excel - Is a third party tampering with my computer?

今天,以下代碼對我不起作用。 我認為有人在篡改我的電腦。 我想知道,這怎么可能被復制,或者我的代碼有錯誤:

'number of rows for a certain column:
dim c as integer
c = WorksheetFunction.counta(columns("A:A"))
'get a value
c = range("A1")

額外的:
我的代碼是家庭作業“蒙特卡羅模擬”。 它基本上改變了用於烘焙餅干的項目列表的成本,並使用不同類型的分布(均勻、正態、離散)來做到這一點。 Excel 耗盡了它的資源,因為循環引用的錯誤格式循環 - 所以錯誤消息)。 我反復重啟Excel。 最后,我使用了教授提供的原始代碼,並一步一步地重新插入我已經編寫好的函數和程序,以找出我在編碼過程中是如何導致 Excel 錯誤消息的。 我在 1 分鍾內完成了 1000 個“蒙特卡羅模擬”,而不是之前觀察到的 30 分鍾。 我提供的代碼我認為是基本的,但我無法解決問題,即使我將舊代碼復制到我的 VBA 模塊中。 我怎樣才能避免 ie 第三方篡改我的計算機?

添加於 2021 年 7 月 20 日
此代碼使用控件集合來獲取表單上的數據值。 您需要具有兩個文本字段的表單,它們應該具有雙值內容。 因此,從今天起,控件集合不起作用。

txtPerc1txt1
然后該函數將返回一個值以及離散分布。
控件行被注釋掉,因為我收到錯誤“子或函數未定義。我檢查了字段的名稱,沒問題。

'sample call:
'discreteDistribtion("Hallo", 3)
' So I have six fields named:
' halloPerc1, halloPerc2, halloPerc3 and hallo1, hallo2, and hallo3
' the function takes here "hallo" and generates the names Hallo1, Hallo2, Hallo3 and halloPerc1, halloPerc2, and halloPerc3
' the function takes the value of hallo1, hallo2, or hallo3, each of these fields having doubles as content.
' According to the logic, hallo1, hallo2 or hallo3 values are returned!
' The code does not work on my computer, when I uncomment the controls code, it worked the weeks before.

Function discreteDistribution(strCtrl As String, iEnd As Integer, Optional iStart As Integer = 1)
    Dim i As Integer, sum As Double, r As Double, strTemp As String
    sum = 0
    r = Rnd
    discreteDistribution = 0
    For i = iStart To iEnd
        strTemp = strCtrl & "Perc" & i
        ''''''sum = sum + Controls(strTemp).Value
        If r < sum Then
            strTemp = strCtrl & i
        ''''''    discreteDistribution = Controls(strTemp)
            Exit For
        End If
    Next i
End Function

我在單獨的工作表上向我的工作簿添加了第二個用戶表單,並且以下代碼正在運行:

Option Explicit

Dim i As Integer


Private Sub CommandButton1_Click()
    For i = 1 To 10
        Controls("TextBox" & i).Value = Cells(i + 1, 1).Value
    Next i
End Sub

Private Sub UserForm_Click()

End Sub

此代碼用電子表格上收集的電話號碼填充一堆文本框。 盡管如此,我還是無法讓我的原始代碼工作。

代碼被 Excel 識別為錯誤,突出顯示了上圖中顯示的錯誤的位置:

雖然這里沒有回答整個問題,但我今天的問題已經解決了。 控件集合是用戶表單的一個屬性。 所以為了從模塊內部調用這個集合,它需要知道它所關聯的表單。 因此,而不是調用controls("Name of Control") = ...調用必須是: form.controls("Name of Control")然后代碼工作。

感謝所有回復我的鼓勵請求的人。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM